【发布时间】:2014-03-31 15:03:33
【问题描述】:
我想了解 javascript 中的原型设计。 例如:
1)
var MyObject = function() {
this.a = "a";
return this;
}
MyObject.prototype.fn = function() {console.log('1');}
var obj1 = new MyObject1();
2)
var MyObject = function() {
this.a = "a";
this.fn = function() {console.log('1');}
return this;
}
var obj2 = new Object2();
我得到 obj1 和 obj2 相同。那么,我在 2) 中所做的也是原型制作?或不?我对原型缺少什么?
【问题讨论】:
-
只要把
MyObject.prototype想象成一个由MyObject构造函数创建的所有对象共享的对象。因此,即使您从MyObject创建 1,000 个新对象,它们都将共享(继承).prototype对象的所有属性。 -
感谢所有 cmets 和答案。 +1。我必须选择一个作为答案。
-
原型是共享的,this.fn 是为每个实例创建的。有关原型和继承的更多信息,请参见此处:stackoverflow.com/a/16063711/1641941
标签: javascript prototype