说我有一个功能。如果我想将它作为方法添加到对象中,我会使用:
let foofunc = function() {}
{
foo: foofunc
}
但是,如果我想将其添加为吸气剂怎么办?你认为我可以这样做:
{
get x: foofunc
}
但我的IDE抱怨,所以我认为这是不可能的。我该怎么做?
答案 0 :(得分:6)
您可以使用Object.defineProperty
功能,如下所示:
function getterFunc() { return 1; }
let anObject = {};
Object.defineProperty(anObject, 'propertyName', {get: getterFunc});
直播示例:
function getterFunc() { return 1; }
let anObject = {};
Object.defineProperty(anObject, 'propertyName', {get: getterFunc});
console.log(anObject.propertyName); // 1

您可以通过执行anObject.propertyName
来正常访问使用getter。
如果您还有更多问题,MDN page会提供更详细的信息。
答案 1 :(得分:-1)
使其成为吸气功能..
let foofunc = function() { return this.x;}
let obj = {
x: "marvel",
get foo(){return foofunc.call(this)}
};
使用:
console.log(obj.foo);