js面向对象类和对象
接触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对象。
?
?
?
?
?
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。