我可以像这样在JavaScript对象中使用getter
var member = {
firstName:"XYZ",
lastName:"zzz",
get fullName(){ return (this.firstName + ' ' + this.lastName); }
}
Run Code Online (Sandbox Code Playgroud)
我甚至可以像这样添加更多属性
member.isGuest = true;
Run Code Online (Sandbox Code Playgroud)
但是有什么方法可以将getter添加到已有的对象中吗?像这样的东西
member.isGuest = get isGuest(){ return this.firstName=='Guest'; }
Run Code Online (Sandbox Code Playgroud)
gur*_*372 52
尝试 defineProperty
Object.defineProperty(member, 'isGuest', {
get: function() { return this.firstName=='Guest' }
});
Run Code Online (Sandbox Code Playgroud)
您可以这样使用新的Object.defineProperty:
Object.defineProperty(
member,
'prop',
{
get: function() {
return this.lastName.toUpperCase()
}
}
);
Run Code Online (Sandbox Code Playgroud)
在过去你必须使用,__defineGetter__
但现在它已被弃用.
归档时间: |
|
查看次数: |
8003 次 |
最近记录: |