公认的答案是伟大的。如果您愿意使用普通的函数语法而不是紧凑的“箭头函数语法”,那是最好的。
但是也许您真的很喜欢箭头功能;也许您使用箭头函数的另一个原因是普通函数语法无法替代 ; 您可能需要其他解决方案。
例如,我注意到OP使用this
,您可能想按词法绑定this
;也称为“此对象的非绑定”),而箭头函数则适合该词汇绑定。
您仍然可以通过该Object.defineProperty
技术将箭头功能与吸气剂配合使用。
{
...
Object.defineProperty(your_obj, 'status', {
get : () => this.xhr.status
});
...
}
请参见object initialization
技术(aka get NAME() {...}
)与defineProperty
技术(aka get : ()=>{}
)的提及。至少存在一个显着差异,使用defineProperty
要求变量已经存在:
在现有对象上定义吸气剂
也就是说,Object.defineProperty
您必须确保your_obj
(在我的示例中)存在并将其保存到变量中(而使用a则object-initialization
可以在对象初始化中返回对象字面量:){..., get(){ }, ... }
。具体在这里的更多信息Object.defineProperty
Object.defineProperty(...)
似乎对get NAME(){...}
语法的浏览器支持可比;IE 9的现代浏览器。
(method, url, something) => this.xhr.open(method. url, something)
。