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