TypeScript——函数-lambads和this关键字

1
2
3
4
5
6
7
8
9
10
11
12
13
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 () {} 函数更改为 () => {}

1
2
3
4
5
6
7
8
9
10
11
12
13
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