犀牛——第9章类和模块 9.1类和原型

来源:互联网 发布:linux脚本判断语句 编辑:程序博客网 时间:2024/05/22 12:09

9.1 类和原型

类的所有实例对象都从同一个原型对象上继承属性。因此,原型对象是类的核心。

9.2 类和构造函数

构造函数是用来初始化新创建的对象的。使用关键字new来调用构造函数。使用new调用构造函数会自动创建一个新对象,因此构造函数本身只需初始化这个新对象的状态即可。调用构造函数的一个重要特性是,构造函数的prototype属性被用做新对象的原型。

例子:

//这是一个构造函数,用以初始化新创建的“范围对象”

//注意,这里并没有创建并返回一个对象,仅仅是初始化

function Range(from,to){

//存储“范围对象”的起始位置和结束位置(状态)

//这两个属性是不可继承的,每个对象都拥有唯一的属性

this.from  =  from;

this.to = to;

}

//所有的“范围对象”都继承自这个对象

//注意,属性的名字必须是“prototype”

Range.prototype = {

includes:function(){},

foreach:function(){},

        toString:function(){}

};

//使用

var r = new Range(1,3);

r.includes();


从某种意义上讲,定义构造函数既是定义类,并且类名首字母要大写。而普通的函数和方法都是首字母小写。

在调用构造函数之前就已经创建了新对象,通过this关键字可以获取这个新对象。Range()构造函数只不过是初始化this而已。构造函数甚至不必返回这个新创建的对象,构造函数会自动创建对象,然后将构造函数作为这个对象的方法来调用一次,最后返回这个新对象。

9.2.1 构造函数和类的标识

原型对象是类的唯一标识。

尽管构造函数不像原型对象那样基础,但构造函数是类的“外在表现”。

9.2.2 constructor属性

(不知道他说什么)













0 0
原创粉丝点击