YanoRyuichi.com/
Wiki
Blog
GitHub
Sandbox
開始行:
* コールバック関数の引数の扱い [#je12d182]
** タイマーで呼ばれるコールバック関数が引数を受け取る場合...
function foo(a,b) { console.log(a + "," + b); }
setTimeout("foo(1,2)", 500);
setTimeout(function(){ foo(1,2) }, 500);
前者のように"foo(1,2)"のような文字列を渡してeval()する事...
** コールバック関数へ引数を渡す [#g62e648e]
function foo(n) { console.log("DEBUG: " + n); }
setTimeout("foo(100)", 0);
var num = 200;
setTimeout("foo(" + num + ")", 0);
↑のように引数を含めて文字列で渡してevalする事も出来なくは...
*** コールバック関数へ引数を渡す方法 [#v9b67cc3]
function foo(n) { console.log("DEBUG: " + n); }
var num = 100;
setTimeout(function () { foo(num) }, 0);
あるいは、
var num = 100;
setTimeout((function(n){
return function(){ console.log(n); };
})(num), 0);
即時関数への引数で渡し、それをコールバック関数内で参照す...
*** 引数の内容が確定するタイミング [#xb3ed152]
↑の方法では、
function foo(n) { console.log("DEBUG: " + n); }
var num = 100;
setTimeout(function () { foo(num) }, 0);
num = 200;
DEBUG: 200
setTimeout()実行後にnumを100から200へ変えると、コールバッ...
function foo(n) { console.log("DEBUG: " + n); }
var num = 100;
setTimeout((function(n){
return foo(n);
})(num), 0);
num = 200;
DEBUG: 100
詳しくやると↓。
var num = 100;
(function () {
console.log("INSIDE1: " + num);
setTimeout((function(n){
return function(){
console.log("CALLBACK: " + n);
console.log("CALLBACK: " + this.num);
};})(num), 0);
num = 200;
console.log("INSIDE2: " + num);
})()
console.log("OUTSIDE: " + num);
INSIDE1: 100
INSIDE2: 200
OUTSIDE: 200
CALLBACK: 100
CALLBACK: 200
コールバック関数に渡される引数nの値はsetTimeout()実行時に...
終了行:
* コールバック関数の引数の扱い [#je12d182]
** タイマーで呼ばれるコールバック関数が引数を受け取る場合...
function foo(a,b) { console.log(a + "," + b); }
setTimeout("foo(1,2)", 500);
setTimeout(function(){ foo(1,2) }, 500);
前者のように"foo(1,2)"のような文字列を渡してeval()する事...
** コールバック関数へ引数を渡す [#g62e648e]
function foo(n) { console.log("DEBUG: " + n); }
setTimeout("foo(100)", 0);
var num = 200;
setTimeout("foo(" + num + ")", 0);
↑のように引数を含めて文字列で渡してevalする事も出来なくは...
*** コールバック関数へ引数を渡す方法 [#v9b67cc3]
function foo(n) { console.log("DEBUG: " + n); }
var num = 100;
setTimeout(function () { foo(num) }, 0);
あるいは、
var num = 100;
setTimeout((function(n){
return function(){ console.log(n); };
})(num), 0);
即時関数への引数で渡し、それをコールバック関数内で参照す...
*** 引数の内容が確定するタイミング [#xb3ed152]
↑の方法では、
function foo(n) { console.log("DEBUG: " + n); }
var num = 100;
setTimeout(function () { foo(num) }, 0);
num = 200;
DEBUG: 200
setTimeout()実行後にnumを100から200へ変えると、コールバッ...
function foo(n) { console.log("DEBUG: " + n); }
var num = 100;
setTimeout((function(n){
return foo(n);
})(num), 0);
num = 200;
DEBUG: 100
詳しくやると↓。
var num = 100;
(function () {
console.log("INSIDE1: " + num);
setTimeout((function(n){
return function(){
console.log("CALLBACK: " + n);
console.log("CALLBACK: " + this.num);
};})(num), 0);
num = 200;
console.log("INSIDE2: " + num);
})()
console.log("OUTSIDE: " + num);
INSIDE1: 100
INSIDE2: 200
OUTSIDE: 200
CALLBACK: 100
CALLBACK: 200
コールバック関数に渡される引数nの値はsetTimeout()実行時に...
ページ名: