actionInt
これは、次の行で宣言されているためです。
var actionInt = parseInt(action);
this.actionInt++
ここthis
で、 は呼び出しコンテキストであり、アドホックに決定されます (おそらく、イベント リスナーをアタッチしたオブジェクト) 。を使用するときに基数を指定することをお勧めするのと同じように、JS で実際に参照するものを読んで、これが意味をなさないことを理解すること
を強くお勧めします。this
parseInt
actionInt = parseInt(action, 10);//action is number?
if (action === 'next')//action is string?
action
がnext
またはの場合previous
、parseInt
常に が返さNaN
れます。インクリメントしてもNaN
(非数 + 1 は非数)
しかし、どのように見ても、実際には閉鎖を探していると思います。
onPageClick : (function(actionInt)
{
return function(event)
{
var action = event.target.innerHTML;
this.loadPage(actionInt, 25);//what is this?
if (action == "Next"){
console.log(actionInt++);//no this
}
else if (action == "previous"){
console.log(actionInt--);
}
};
}(0)),//pass initial actionInt value here
JS が式/変数名を解決する方法とクロージャーの仕組みの詳細については、この回答を参照してください... がグローバル変数の
場合actionInt
、IIFE を省略して を使用するだけでactionInt
、デフォルトでグローバル変数に解決されます (またはスローします)。厳密モードで定義されていない場合はエラー)