2011-12-29 5 views
5

に関数を適用することは期待[1, 2]を返しますが、私はJavaScriptを学んでいると私は現在、なぜ(<a href="https://developer.mozilla.org/en/SpiderMonkey" rel="nofollow">Spidermonkey</a>中)</p> <pre><code>[].concat.apply([1], [[2]]) </code></pre> <p>を把握しようとしているJavaScriptの

Array.concat.apply([1], [[2]]) 

リターン[2]の代わりに、 [1, 2]

誰かが良い説明をしてくれますか?

+1

'Array.prototype.concat.apply([1]、[[2]])'は何を返しますか? – Pointy

+1

あなたはどのブラウザを使用していますか? 'Array.concat'はChromeには存在しません。 –

+0

FirefoxにはArrayプロトタイプに「concat()」があります(Arrayコンストラクターオブジェクトではありません)。 – Pointy

答えて

8

[].concatは、Array.prototype.concatです。

Array.concatは、1つまたは複数の配列を連結し、そのthis引数を無視するFirefox専用の静的メソッドです。

+1

これは答えに違いありませんが、MDNはその方法を奇妙に文書化していません:-) – Pointy

+0

はい。私は気づきました... – SLaks

+0

'[] .concat'や' Array.prototype.concat'のどのスタイルが好まれますか? – eljenso