{{1}}
如您所见,我想为所有Object值创建一个函数。我需要在此函数中获取对象值然后执行某些操作。
答案 0 :(得分:2)
函数体应该返回this.b
。您可以使用this
关键字获取对象本身,该关键字仅在适当的函数表达式中起作用,而不是在箭头函数中。
如果你真的想改变原型,这是一种更好的方法,预先检查函数的存在并使属性描述符更符合现有方法:
if(!Object.prototype.hasOwnProperty("getB")){
Object.defineProperty(Object.prototype, "getB", {
enumerable: false,
writable: true,
configurable: true,
value: function getB(){
return this.b;
}
});
}
或者,如果支持ECMAScript 6 shorthand method names,这种方法会稍好一些,因为它会使getB
成为一种不可构造的方法,这更符合现有方法。
if(!Object.prototype.hasOwnProperty("getB")){
Object.defineProperty(Object.prototype, "getB", {
enumerable: false,
writable: true,
configurable: true,
value: {
getB(){
return this.b;
}
}.getB
});
}