以下代码仅针对name属性引发错误.可以通过name在属性中将属性指定为可写来修复它,Object.create但我试图理解为什么会发生这种情况(并且可能有更优雅的方法来修复它).
var BaseClass = function (data) {
Object.assign(this, data);
}
var ExtendedClass = function () {
BaseClass.apply(this, arguments);
}
ExtendedClass.prototype = Object.create(BaseClass);
console.log(new ExtendedClass({ type: 'foo' }));
new ExtendedClass({ name: 'foo' });Run Code Online (Sandbox Code Playgroud)