JavaScript中类的定义

      1.类的定义机制  

1>function关键字定义

2>function内部通过this指针定义的成员。

3>function类似于其他语言中的构造函数(constructor)

demo1

function cls()
{
 
     this.txt = “111”;
 
     this.display = function(){ alert(“this is a test method”); }
}
var obj=new cls();
 

2.理解new创建对象的过程

通过new cls()获得对象obj,对象obj便自动获得了属性txt和方法display  

new 创建对象过程:  

1>当解释器遇到new操作符时便创建一个空对象;   

2>开始运行cls这个构造函数,并将其中的this指针都指向这个新建的对象;   

3>当给对象不存在的属性赋值时,解释器就会为对象创建该属性。

例如在cls中,当执行到this.txt=”111″这条语句时,就会添加一个属性txt,并把字符串“111”赋给它,这样函数执行就是初始化这个对象的过程,即实现构造函数的作用;   

4>当函数执行完后,new操作符就返回初始化后的对象。  

3.demo1中定义的缺点

JavaScript中,function的定义实际上就是实现一个对象的构造器,是通过函数来完成的。这种方式的缺点是:   

·将所有的初始化语句、成员定义都放到一起,代码逻辑不够清晰,不易实现复杂的功能。   

·每创建一个类的实例,都要执行一次构造函数。构造函数中定义的属性和方法总被重复的创建,例如: this.display=function(){  alert(“this is a test method”); }   

每创建一个cls的实例,display都会被创建一次,造成了内存的浪费。  

Read: 757

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注