applyやcallのように引数で指定したオブジェクトの参照をれーしぶオブジェクトのthis参照にするのがbindメソッドです。
このbindメソッドを説明している「パーフェクトjavascript」185pの一節に疑問を感じたので質問します。
関数に対してbindを呼ぶと新しい関数を返します。新しい関数は、元関数と同じ内容を実行しますが、this参照がbindの第一引数に指定したオブジェクトになります。
applyとcallは、呼び出すとすぐに対象関数を呼び出しますが、bindはその場で呼ばすに関数(クロージャ)を返します。
と、ありますがbindが返す新しい関数とその場で呼ばずに返すクロージャは、同一のものですか。それとも違うものですか。
因みにクロージャは、関数で指定したthis.メンバ名...という形ではない、普通のローカル変数やメソッドを関数内関数から呼び出す技巧で、外から覗かれない、弄られない長所があると認識しております。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。