1
在我的反应原生代码中,我在模块的多个位置使用了bind(this)
和var self = this;
。bind和var self之间的区别= this?
两者都解决了在正确的地方解决this
关键字的问题。
这里是我的代码(2代码,以执行相同的功能) -
使用
bind(this)
retval.then(function (argument) { console.log("argument"+JSON.stringify(argument)); this.stateSetting(argument); }.bind(this));
使用
var self = this
var self = this; retval.then(function (argument) { console.log("argument"+JSON.stringify(argument)); self.stateSetting(argument); });
缺点如果他们都做同样的工作,我很想知道什么是正确的做法?使用其中一个还是有问题?还是有更好的方法来做到这一点?
这两个工作正常。我会尽量在应用程序或至少一个模块中保持一致。 –
ES6箭头功能是更好的方法。 – Oriol
感谢Robert :)只是想知道,如果我做了'''if if(self === this)''''返回true。那么,有没有办法摧毁自我?如果这是我可以完成的一个对象 - '''self = {}'''。在这种情况下,我应该将自我指向null吗? – bozzmob