javascript构造函数中加属性和原型上加属性的问题

在javascript中在构造函数中加属性和在原型上加属性各有什么优劣吗

阅读 4.1k
2 个回答

一个是实例自己的,一个是原型共享的,优劣什么的看需求的场景,例子:

function Foo() {
  this.prop = 123;
}

Foo.prototype.prop2 = 555;

var f1 = new Foo()
    f2 = new Foo();

console.log(f1.prop, f2.prop); // 123 123
f1.prop = 444;
console.log(f1.prop, f2.prop); // 444 123

console.log(f1.prop2, f2.prop2); // 555 555
f1.__proto__.prop2 = 666;
console.log(f1.prop2, f2.prop2); // 666 666

构造函数的那就只能是自己的,要是在原型上的话就是公有的,其它使用原型建立的构造函数,只要原型的修改了,对应的构造函数也会被修改

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题