如何翻译成ES6?
function Mock() { };
Mock.prototype.foo = 'bar';
var obj = new Mock();
console.log(obj.foo);
Mock.prototype.foo = 'Something else';
console.log(obj.foo);
我试过这样做。
class Mock {
foo = 'bar';
}
const obj = new Mock();
console.log(obj.foo);
Mock.prototype.foo = 'Something else';
console.log(obj.foo);
但是没有用 因为类的属性实际上是直接附加在实例对象上的 而不是附加在... ... Mock.prototype
.
在我看来,改变原型是一种反常的做法。但如果你真的想这样做,你应该继续使用和以前一样的语法来定义属性。
class Mock { }
Mock.prototype.foo = "bar";
const obj = new Mock();
console.log(obj.foo);
Mock.prototype.foo = "Something else";
console.log(obj.foo);
class Mock {
foo = 'bar'
}
const obj = new Mock()
console.log(obj.foo)
Object.defineProperty(obj, 'foo', {
value: 'Something else',
writable: true,
enumerable: false,
configurable: false
})
console.log(obj.foo)