《Javascript权威指南》 构造函数

类和构造函数

使用new调用构造函数会创建新对象,构造函数的prototype属性被用作新对象的原型。

//构造函数,用以初始化新创建的“范围对象”
//没有创建并返回对象
function Range(from, to) { this.from = from; this.to = to; } Range.prototype ={ includes: function(x) { return this.from <= x && x <= this.to;}, foreach: function(f) { for (var x = Math.ceil(this.from); x <= this.to; x++) f(x); }, toString: function() { return "(" + this.from + "..." + this.to + ")"} }; var r = new Range(1,3); r.include(2); //true r.foreach(alert); console.log(r.toString()); //(1...3)

Range()构造函数只不过初始化this而已,不必返回这个新创建的对象,构造函数会自动创建对象,

 

constructor属性

函数都拥有prototype属性,这个属性的值是一个对象,它包含唯一一个不可枚举属性constructor。constructor属性的值是一个函数对象

var F = function() {};    
var p = F.prototype;      //F相关联的原型对象
var c = p.constructor;   //与原型对象相关联的对象
alert(c === F);            //true   F.prototype.constructor == F

 

对象通常继承的constructor属性指代它们的构造函数。

var o = new F();

o.constructor === F  //true

 

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