猿问

react-native里关于this的一个问题

为了方便截图,我把多余的代码省掉了

初学react-native,问题如下:


我知道图中画圈的这两个this都是指向的LoginForm实例,但是为什么要加这个this呢?


function foo1(){

    console.log('sssss');

}


function foo2(){

    this.foo1();

}


foo2();


---------------


function foo1(){

    console.log('sssss');

}


function foo2(){

    foo1();

}


foo2();

就像上面两端代码一样,无论加不加this都没有影响函数的调用。

所以我觉得不用加this,render()函数都可以在里面调用renderButton()函数????


回首忆惘然
浏览 544回答 2
2回答

神不在的星期二

当一个对象调用静态或原型方法时,如果该对象没有“this”值(或“this”作为布尔,字符串,数字,未定义或null),那么“this”值在被调用的函数内部将为undefined。不会发生自动包装。即使我们以非严格模式编写代码,它的行为也是一样的,因为所有的函数、方法、构造函数、getters或setters都在严格模式下执行。因此如果我们没有指定this的值,this值将为undefined。class 内部的所有方法都是默认的严格模式,默认的this不是window(不存在class的时候),而是undefined,所以必须要手动制定this,手动绑定。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答