Hatena::ブログ(Diary)

うっかりプログラミング日誌 RSSフィード

2011-08-27

とまあ

00:41 |  とまあを含むブックマーク

だいぶ昔のメモが下書きに眠ってたので公開してみました。懐かしいなあ。

Function::arguments

| 00:39 |  Function::argumentsを含むブックマーク

argumentsは引数リストだと思っていたら、実はオブジェクトらしい。

arrayにそのまま渡したい時に困るのだが、変換できる。

Array.prototype.slice.call(arguments)

https://developer.mozilla.org/en/JavaScript/Reference/functions_and_function_scope/arguments

Function::apply and call

| 00:39 |  Function::apply and callを含むブックマーク

JSのapplyってずっとよくわかってなかったので調べてみた。

schemeの(apply <func> <list>)と同じようなもんと考えて納得。

あるオブジェクト関数を別のオブジェクトに適用する。

"hoge".slice()
//=> "hoge"

[].slice.apply("hoge")
// => ["h", "o", "g", "e"]

似たメソッドでcallがあるが、引数の取り方が異なる。

Array.prototype.slice.apply("hoge", [3,4])

Array.prototype.slice.call("hoge", 3, 4)

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/function/apply

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call