bind(this)是把事件绑定到react组件上面。箭头函数默认是执行了bind(this)的
function Person() {
// 构造函数Person()将`this`定义为自身
this.age = 0;
setInterval(function growUp() {
// 在非严格模式下,growUp()函数将`this`定义为“全局对象”,
// 这与Person()定义的`this`不同,
// 所以下面的语句不会起到预期的效果。
this.age++;
}, 1000);
}
var p = new Person();
修复
function Person() {
var self = this; // 有的人习惯用`that`而不是`self`,
// 无论你选择哪一种方式,请保持前后代码的一致性
self.age = 0;
setInterval(function growUp() {
// 以下语句可以实现预期的功能
self.age++;
}, 1000);
}
另外,创建一个约束函数可以使得 this值被正确传递给 growUp() 函数。
箭头函数捕捉闭包上下文的this值,所以下面的代码工作正常。
function Person(){
this.age = 0;
setInterval(() => {
this.age++; // 这里的`this`正确地指向person对象
}, 1000);
}
var p = new Person();
react-native this使用笔记
最新推荐文章于 2024-04-27 01:44:11 发布