コアJavaScript第4章第1部(コールバック関数)
4301 ワード
コールバック関数
別のコード(ex.map)パラメータに渡す関数
ex)
Array.prototype.map(callback, thisArg)
callback : function(currentValue, index, array)
コールバック関数のthis
コールバック関数に個別のターゲットを指定すると、そのターゲットが参照されます.
(例外:関数が矢印関数の場合、thisは存在しません)
コールバック関数でこの値を指定できない場合、この値を指定する方法(この値を迂回)
ex)
settimeout関数はコールバック関数を受け入れますが、この値は指定されていません.
伝統的な方式.
var obj1 = {
name:'obj1',
func : function(){
var self = this;
return function(){
console.log(self.name);
};
}
};
var callback = obj1.func();
setTimeout(callback,1000);
bindメソッドの使用
var obj1 = {
name:'obj1',
func : function(){
console.log(obj1.name);
}
};
var obj3 = {name : 'obj3'};
var callback3 = obj1.func.bind(obj3);
setTimeout(callback3,2000);
call/applyはメソッドの実行時に直ちに有効になるためsettimeout関数と一致しないと考えられるReference
この問題について(コアJavaScript第4章第1部(コールバック関数)), 我々は、より多くの情報をここで見つけました https://velog.io/@khw970421/코어자바스크립트-4장-part1-콜백함수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol