1. Definition der Methode
Methode aufrufen:
Syntax: fun.call(thisArg[, arg1[, arg2[, ...]]])
Definition: Rufen Sie eine Methode eines Objekts auf , ersetzt das aktuelle Objekt durch ein anderes Objekt.
Hinweis:
Mit der Aufrufmethode kann eine Methode anstelle eines anderen Objekts aufgerufen werden. Die Aufrufmethode ändert den Objektkontext einer Funktion vom ursprünglichen Kontext in das durch thisArg angegebene neue Objekt.
Wenn kein thisArg-Parameter angegeben wird, wird das Global-Objekt als thisArg verwendet.
Methode anwenden:
Syntax: fun.apply(thisArg[, argsArray])
Definition: Eine Methode eines Objekts anwenden und das aktuelle Objekt durch ein anderes Objekt ersetzen.
Hinweis:
Wenn argArray kein gültiges Array oder kein Argumentobjekt ist, wird ein TypeError verursacht.
Wenn weder argArray noch thisArg bereitgestellt werden, wird das Global-Objekt als thisArg verwendet und es können keine Parameter übergeben werden.
2. Der Unterschied zwischen den beiden Methoden besteht darin, dass die Parameter übergeben werden:
function Product(name, price) { this.name = name; this.price = price; if (price < 0) throw RangeError('Cannot create product "' + name + '" with a negative price'); return this; } function Food(name, price) { Product.call(this, name, price); this.category = 'food'; } Food.prototype = new Product(); function Toy(name, price) { Product.call(this, name, price); this.category = 'toy'; } Toy.prototype = new Product(); var cheese = new Food('feta', 5); var fun = new Toy('robot', 40);
function Product(name, price) { this.name = name; this.price = price; if (price < 0) throw RangeError('Cannot create product "' + name + '" with a negative price'); return this; } function Food(name, price) { Product.apply(this, arguments); this.category = 'food'; } Food.prototype = new Product(); function Toy(name, price) { Product.apply(this, arguments); this.category = 'toy'; } Toy.prototype = new Product(); var cheese = new Food('feta', 5); var fun = new Toy('robot', 40);
3.1. Klassenvererbung
Weitere Unterschiede und Verwendungsmöglichkeiten zwischen Javascript-Aufruf und Apply Beachten Sie für methodenbezogene Artikel bitte die chinesische PHP-Website!function Person(name,age){ this.name = name; this.age=age; this.alertName = function(){ alert(this.name); } this.alertAge = function(){ alert(this.age); } } function webDever(name,age,sex){ Person.call(this,name,age); this.sex=sex; this.alertSex = function(){ alert(this.sex); } } var test= new webDever(“设计蜂巢”,24,”男”); test.alertName();//设计蜂巢 test.alertAge();//24 test.alertSex();//男