假设有对象objece;
var object = function(){
this.a = 1;
this.b = 2;
}
然后我 var obj1 = new object();
这里的obj1就是对象,给对象obj1加一个属性 obj1.c = 3;
但是我再var obj2 = new object();这里的obj2并没有c这个属性;
但是我通过原型的方式加属性c; object.prototype.c = 3;
那么我var obj3 = new object();
obj3就有c这个属性
望采纳!
object.c=3 只是在这个对象上添加了属性c
object.prototype.c = 3 是在对象原型链上添加了属性c
通过new运算符构造出的实例的原型链指向构造函数的原型链
prototype是对类操作的,相当于把Object重构了,变成了有a,b,c三个属性的类,如果没经过重构,直接new一个obj3,就是只是开辟了一个之后两个参数的Object的内存空间,压根没c属性的内存空间,直接给obj3.c赋值会出错的