在javascript中在构造函数中加属性和在原型上加属性各有什么优劣吗
构造函数的那就只能是自己的,要是在原型上的话就是公有的,其它使用原型建立的构造函数,只要原型的修改了,对应的构造函数也会被修改
一个是实例自己的,一个是原型共享的,优劣什么的看需求的场景,例子:
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