在ES6中,当您创建具有原型属性的类时,如何在类的实例化(baz
)上设置那些道具biz
和new
?
class Foo {}
Foo.prototype.baz = 1;
Foo.prototype.biz = 'wow';
var thing = new Foo() // How to also set prototype values of .baz & .biz on creation?
class Baz {
constructor(biz) {
this.biz = biz
}
}
var baz = new Baz(); // will not put properties on the prototype.
最佳答案
它是
class Baz {
constructor(biz) {
Object.getPrototypeOf(this).biz = biz
// or
// this.constructor.prototype.biz = biz
}
}
const baz1 = new Baz(1); // baz1.biz === 1
const baz2 = new Baz(2); // baz2.biz === 2
baz1.biz === baz2.biz; // === 2
在任何合理的情况下,这都不是人们想要做的。
关于javascript - 在es6中是否可以实例化一个类并定义类似于经典构造函数的原型(prototype)属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40731347/