Heim  >  Artikel  >  Web-Frontend  >  Der Unterschied zwischen Javascript-Aufruf und -Anwenden und wie man es verwendet

Der Unterschied zwischen Javascript-Aufruf und -Anwenden und wie man es verwendet

高洛峰
高洛峰Original
2017-01-12 11:40:001087Durchsuche

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:

2.2 :
function Product(name, price) {
this.name = name;
this.price = price;
if (price < 0)
throw RangeError(&#39;Cannot create product "&#39; + name + &#39;" with a negative price&#39;);
return this;
}
function Food(name, price) {
Product.call(this, name, price);
this.category = &#39;food&#39;;
}
Food.prototype = new Product();
function Toy(name, price) {
Product.call(this, name, price);
this.category = &#39;toy&#39;;
}
Toy.prototype = new Product();
var cheese = new Food(&#39;feta&#39;, 5);
var fun = new Toy(&#39;robot&#39;, 40);

3. Funktionsbeispiele
function Product(name, price) {
this.name = name;
this.price = price;
if (price < 0)
throw RangeError(&#39;Cannot create product "&#39; + name + &#39;" with a negative price&#39;);
return this;
}
function Food(name, price) {
Product.apply(this, arguments);
this.category = &#39;food&#39;;
}
Food.prototype = new Product();
function Toy(name, price) {
Product.apply(this, arguments);
this.category = &#39;toy&#39;;
}
Toy.prototype = new Product();
var cheese = new Food(&#39;feta&#39;, 5);
var fun = new Toy(&#39;robot&#39;, 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();//男
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn