JavaScriptのapply
このメソッドの理解には本当に時間がかかった。
手持ちのリファレンスには
現在の関数オブジェクトに渡された引数全て、 あるいは一部を他のオブジェクトに渡して呼び出すメソッドです
と書いてあるけどいくら考えてもサッパリ分からず、
いくつかのサイトや詳しそうな書籍を探してみることに。
なるほど。と思える記述があったのは以下の2つ
http://keicode.com/jsref/function.apply.phpより引用
Function.apply の第1引数を this として、Function を呼び出す。第2引数以降は、 Function への第1引数、第2引数、... となるが、値は Array として渡す。 下の例では、sayHello を call しているが、第1引数として渡した p (Person オブジェクト) が、 sayHello ファンクションの中での this になる。 function Person( name ) { this.name = name; } function sayHello( s ) { alert( s + this.name + '!' ); } function ___test() { var p = new Person('Ichiro'); sayHello.apply ( p, new Array('Hello, ') ); // 'Hello, Ichiro!' が表示される }
「第1引数として渡した p (Person オブジェクト) が、 sayHello ファンクションの中での this になる。」
の部分で「なるほど!」と思えた。ってか手持ちのリファレンス、もうちょっとまともに説明を書いてほしいもんだ・・・・。
オライリー JavaScript 第5版
より引用
それにしてもJavaScriptは読みづらい・・・・・(゚ω゚ )