js面向对象类和对象

编程技术  /  houtizong 发布于 3年前   66

接触js已经有几个月了,但是对js的面向对象的一些概念根本就是模糊的,js是一种面向对象的语言 但又不像java一样有class,js不是严格的面向对象语言 ,js在java web开发的地位和java不相上下  ,其中web的数据的反馈现在主流的使用json,json的语法和js的类和属性的创建相似

 

下面介绍一些js的类和对象的创建的技术

 

一:类和对象的调用

 var obj={   'id':2,   'name':'王珂',   'sex':'男' }; alert(obj.name+" "+obj.id);

 

二:函数创建对象  this指当前类的属性与java相似(原型模式)

//简单对象的创建    function  myObj(){   this.id=1;   this.name="王文";}var b =new myObj();//alert(" 对象"+b.id+" "+b.name);

 

 三:构造函数创建类和对象(构造函数模式)

 

//根据类的属性创建对象function createPerson(id,name,sex){  this.id=id;  this.name=name;  this.sex=sex;  this.syName=function(){      // alert("函数的属性是:"+this.name);  }}//alert(obj.id+""+obj.name+""+obj.sex);//创建对象var person=new  createPerson(obj.id,obj.name,obj.sex);//alert("对象的结果是:"+person.id+""+person.name+""+person.sex);//对象调用类中的匿名函数person.syName();

 

 

 四:两次输出的结果都是一样

function Person(name,age,job){          this.name = name;  this.age=age;         this.job = job;          this.sayName = function(){ alert(this.name); }; } Person("ansel","30","male");         Person("tanya","30","female"); window.sayName(); window.sayName(); 

 

 

发现两次弹出的都是ansel,这是因为不用new的话,就不是一个person的实例,而仅仅在执行函数。而在全局作用域调用一个函数时this总是指向Global对象。而Global对象在浏览器中就是window对象。

 

 

 

 

 

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客