var people = {
name: ['a', 'b', 'c', 'd', 'e'],
getName: function () {
return function () {
var i = Math.floor(Math.random() * 4);
return {
n: this.name[i] // 这里的this指向的是getName,而不是people,
}
}
}
}
var myname = people.getName();
alert('名字是:' + myname().n); // 名字是:undefined
通过把 function () {}
函数更改为 () => {}
var people = {
name: ['a', 'b', 'c', 'd', 'e'],
getName: function () {
return () => {
var i = Math.floor(Math.random() * 4);
return {
n: this.name[i] // 通过lambads 改变了this的指向
}
}
}
}
var myname = people.getName();
alert('名字是:' + myname().n); // 名字是:b
网友评论