雰囲気だけ理解するjavascriptのapply
applyの意味
英語としての意味
そもそもapplyというのは、「当てる,塗る,つける」という意味。
だから、
functionA.apply(functionB);
という構文は
「functionAをfunctionBに付ける」という意味になる。
逆に言うと「functionBにfunctionAを付け加える」
javascriptとしての意味
javascriptでは、上の構文は、
「functionBにfunctionAを付け加え」て、その上で「実行する」という意味になる。
用例
function funcA() { this.valA = 1; alert("in funcA valB = " + this.valB); } function funcB() { this.valB = 3; funcA.apply(this); } var hoge = new funcB(); alert("hoge.valA = " + hoge.valA);
上記のコードを実行すると、以下のような動作になる。
- アラート表示"in funcA valB = 3"
- アラート表示"hoge.valA = = 1"
これは、
- funcAの処理はfuncBのコンテキストの上で実行されている
- funcBはfuncAのコンテキストを包含している
という二つのことを示している。