私はすでにバインドしていることを知っています、それはあなたが望む機能にあなたの与えられたオブジェクトや機能を束縛しましたが、bind(this)
は本当に私を混乱させています。this
は本当に意味しますか?バインド(これ)は何を意味しますか?
以下はfirebase Databaseの私の反応アプリのコードです。ここ
componentWillMount: function() {
this.firebaseRef = firebase.database().ref('todos');
this.firebaseRef.limitToLast(25).on('value', function(dataSnapshot) {
var items = [];
dataSnapshot.forEach(function(childSnapshot) {
var item = childSnapshot.val();
item['key'] = childSnapshot.key;
items.push(item);
}.bind(this));
this.setState({
todos: items
});
}.bind(this));
},
あなたはthis'が何であるかを '知っていますか?これは基本的に、コールバックが 'this'の値をその周囲のスコープから継承することを確認する方法です。 – 4castle
'functionName.bind(context)'と同じです。その動作は '.on( 'value')'のためのコンポーネントとして設定コンテキストを設定することです。だからあなたが 'this.state ....'を実行するとき、これは正しい範囲を指し示すでしょう – Rajesh
[JavaScriptのbindメソッドの使用]の可能な複製(http://stackoverflow.com/questions/2236747/use-of- javascript-bind-method) –