永发信息网

JS问题,给对象添加属性和给对象的原型添加属性有什么区别?

答案:3  悬赏:0  手机版
解决时间 2021-02-14 15:05
  • 提问者网友:城市野鹿
  • 2021-02-13 17:39
JS问题,给对象添加属性和给对象的原型添加属性有什么区别?
最佳答案
  • 五星知识达人网友:鸽屿
  • 2021-02-13 19:09
假设有对象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
那var obj3 = new object(); obj3不是同样有c这个属性么?

我是想问object.c=3和object.prototype.c = 3
有啥区别追答object.c=3这样同样new出来的还是不会有c这个属性追问果然是这样
憋了好久的疑问终于知道了

能解释一下为什么直接写object.c=3时 new不出来么?

跪谢~!!!!!
全部回答
  • 1楼网友:罪歌
  • 2021-02-13 19:54
object.c=3 只是在这个对象上添加了属性c
object.prototype.c = 3 是在对象原型链上添加了属性c
通过new运算符构造出的实例的原型链指向构造函数的原型链
  • 2楼网友:野慌
  • 2021-02-13 19:41
prototype是对类操作的,相当于把Object重构了,变成了有a,b,c三个属性的类,如果没经过重构,直接new一个obj3,就是只是开辟了一个之后两个参数的Object的内存空间,压根没c属性的内存空间,直接给obj3.c赋值会出错的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯