类和构造函数
使用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
时间: 2024-10-18 11:38:11