通常、私は、オブジェクトの種類を(それは、配列、のNodeList、または任意のかどうか)確認したいとき、私は次のようにします。`{} .toString.apply(array)`が動作しないのはなぜですか?
var arr = [] // I don't do this, but it's for the sake of the example
var obj = {}
obj.toString.apply(arr) // This works
質問です:私はなぜないでき以下?
var arr = []
{}.toString.apply(arr) // Syntax error: Unexpected token .
私は構文エラーがどこにはありません。
私は、しかし、次の作品を[]
と近づいて何かを行うことができます:
var nodeList = document.getElementsByClassName('foo')
[].forEach.call(nodeList, function(bar) { console.log(bar) }) // Works
だから... ...私は混乱しています。
あなたはtoString()を忘れましたか? – kappa
いいえ、@ Ray Toalの答えをご覧ください。括弧を追加すると、構文エラーが発生します(オブジェクトには 'apply'メソッドがありません)。 –
ああ..私はそれが正しいとは思わなかった。 – kappa