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

clipboard.png

为了方便截图,我把多余的代码省掉了
初学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()函数????

阅读 2.5k
2 个回答
当一个对象调用静态或原型方法时,如果该对象没有“this”值(或“this”作为布尔,字符串,数字,未定义或null)
,那么“this”值在被调用的函数内部将为
undefined。不会发生自动包装。即使我们以非严格模式编写代码,它的行为也是一样的,因为所有的函数、方法、构造函数、getters或setters都在严格模式下执行。因此如果我们没有指定this的值,this值将为undefined。

class 内部的所有方法都是默认的严格模式,默认的this不是window(不存在class的时候),而是undefined,所以必须要手动制定this,手动绑定。

因为这是在一个 class 里,不加 this 调不到
下面那段代码则不是

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题