公认的答案是伟大的。如果您愿意使用普通函数语法而不是紧凑的“箭头函数语法”,这是最好的。
但也许你真的喜欢箭头函数;也许你使用箭头函数是出于另一个原因,正常函数语法无法取代;您可能需要一个不同的解决方案。
例如,我注意到OP使用,你可能想在词法上绑定这个
;又名“这个的非绑定”),箭头函数对词法绑定是好的。this
您仍然可以通过该技术将箭头函数与 getter 一起使用。Object.defineProperty
{
...
Object.defineProperty(your_obj, 'status', {
get : () => this.xhr.status
});
...
}
请参阅对象初始化
技术(又名 get NAME() {...}
) 与 defineProperty
技术 (aka get : ()=>{}
)的提及。至少有一个显著的区别,使用要求变量已经存在:defineProperty
在现有对象上定义 getter
也就是说,您必须确保(在我的示例中)存在并保存到变量中(而使用a,您可以在对象初始化中返回对象文本:)。有关 Object.defineProperty 的更多信息
,请点击此处Object.defineProperty
your_obj
object-initialization
{..., get(){ }, ... }
Object.defineProperty(...)
似乎具有与语法相当的浏览器支持;现代浏览器,IE 9。get NAME(){...}