我在Object.create
方法中将一个对象作为第二个参数传递,但是出现以下错误:
这是错误的代码:
var test = Object.create(null, {
ex1: 1,
ex2: 2,
meth: function () {
return 10;
},
meth1: function () {
return this.meth();
}
});
最佳答案
Object.create(proto, props)
有两个参数:
props
对象的格式定义为here。
简而言之,每个属性描述符的可用选项如下:
{
configurable: false, // or true
enumerable: false, // or true
value: undefined, // or any other value
writable: false, // or true
get: function () { /* return some value here */ },
set: function (newValue) { /* set the new value of the property */ }
}
代码的问题在于,您定义的属性描述符不是对象。
这是正确使用属性描述符的示例:
var test = Object.create(null, {
ex1: {
value: 1,
writable: true
},
ex2: {
value: 2,
writable: true
},
meth: {
get: function () {
return 'high';
}
},
meth1: {
get: function () {
return this.meth;
}
}
});
关于javascript - 在Object.create中使用属性描述符的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37672693/