NodeList オブジェクト (配列のような) で配列メソッドを実行するには、毎回 Array.prototype を間接的に呼び出す必要があります。
それが可能になるように何かできることnode_list.slice(0,1)
はありますか?
NodeList は Object.prototype からメソッドを継承するため、以下のように実装し、完全に動作しますnode_list.slice(0,1)
Object.prototype.slice = function(a,b){ return Array.prototype.slice.call(this,a,b);}
Object.prototype にスライスを実装する際に不利な点はありますか?
Array.prototype を呼び出す従来の方法:
node_list
[<li> test_list1 </li>, <li> test_list2 </li>]
Object.prototype.toString.call(node_list)
"[object NodeList]"
var content = Array.prototype.slice.call(node_list,0,1)
content
[<li> test_list1 </li>]
Object.prototype.toString.call(content)
"[object Array]"