【发布时间】:2021-09-25 09:12:41
【问题描述】:
有谁知道为什么在下面的代码示例中,当 ES6 类只是构造函数和原型模式之上的语法糖时,JS 会抛出错误?
// Example 1
class Cat {
meow() {
console.log('Meow meow!')
}
}
let kitty = {};
Object.assign(kitty, Cat.prototype);
kitty.meow(); // TypeError: kitty.meow is not a function
为什么这段代码 sn-p 应该在功能上与上面的代码相同?
class Cat {
}
Cat.prototype.meow = function() {console.log('Meow meow!')}
let kitty = {};
Object.assign(kitty, Cat.prototype);
kitty.meow(); // Meow meow!
【问题讨论】:
-
你为什么不把kitty创建成
new Cat()? -
或者,如果你必须
let kitty = Object.create(Cat.prototype);
标签: javascript class ecmascript-6 prototype