hua*_*990 1 javascript scope global object arrow-functions
var obj = {
name: 'hello',
getName: function(){
return () => {return this.name; }
}
}
var name = 'world';
var nameFunc = obj.getName();
console.log(nameFunc())
Run Code Online (Sandbox Code Playgroud)
结果是"你好",而不是"世界".我有点困惑.
箭头函数"诞生"与this它们创建时的价值相关联.致电时getName():
var nameFunc = obj.getName();
Run Code Online (Sandbox Code Playgroud)
然后里面getName()的值this是一个引用obj.您的return语句构造了箭头函数,因此该函数被绑定obj.就像你写的那样:
getName: function() {
return function() {
return this.name;
}.bind(this);
}
Run Code Online (Sandbox Code Playgroud)
这就是箭头功能的工作方式,是的,它与常规功能不同.
| 归档时间: |
|
| 查看次数: |
31 次 |
| 最近记录: |