JavaScript のオブジェクト指向機能は、互換性のために、多くの奇妙なものが作成されました。
function Animal(){ this.name = "Animal"; this.showName = function(){ alert(this.name); } } function Cat(){ this.name = "Cat"; } var animal = new Animal(); var cat = new Cat(); //通过call或apply方法,将原本属于Animal对象的showName()方法交给对象cat来使用了。 //输入结果为"Cat" animal.showName.call(cat,","); //animal.showName.apply(cat,[]);
ということで、オブジェクトが存在するときにこれを動的に変更するように見えることがわかります。メソッドを使用しますが、他のオブジェクトのメソッドを使用して、call または apply を使用して操作することもできます。
最も一般的に使用されるものは、document.getElementsByTagName を通じて選択された dom ノードが配列のような配列であることです。プッシュ、ポップ、その他のメソッドを配列の下に適用することはできません。次のように渡すことができます:
var domNodes = Array.prototype.slice.call(document.getElementsByTagName("*"));
このようにして、domNodes は Array 内のすべてのメソッドを適用できます。