Maison  >  Article  >  interface Web  >  La différence entre l'appel Javascript et l'application et comment l'utiliser

La différence entre l'appel Javascript et l'application et comment l'utiliser

高洛峰
高洛峰original
2017-01-12 11:40:001093parcourir

1. Définition de la méthode
call method :
Syntaxe : fun.call(thisArg[, arg1[, arg2[, ...]]])
Définition : Appeler une méthode d'un objet , remplace l'objet actuel par un autre objet.
Remarque :
La méthode call peut être utilisée pour appeler une méthode à la place d'un autre objet. La méthode d'appel modifie le contexte d'objet d'une fonction du contexte d'origine vers le nouvel objet spécifié par thisArg.
Si aucun paramètre thisArg n'est fourni, l'objet Global est utilisé comme thisArg.

Méthode apply :
Syntaxe : fun.apply(thisArg[, argsArray])
Définition : Appliquer une méthode d'un objet et remplacer l'objet actuel par un autre objet.
Remarque :
Si argArray n'est pas un tableau valide ou n'est pas un objet arguments, une TypeError sera provoquée.
Si ni argArray ni thisArg ne sont fournis, l'objet Global sera utilisé comme thisArg et aucun paramètre ne pourra être transmis.

2. La différence entre les deux
La différence fondamentale entre les deux méthodes est que les paramètres sont transmis
2.1 méthode d'appel :

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);

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.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. Exemples de fonctions

3.1. Héritage de classe

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();//男

3.2. Fonction de rappel

function Album(id, title, owner_id) {
this.id = id;
this.name = title;
this.owner_id = owner_id;
};
Album.prototype.get_owner = function (callback) {
var self = this;
$.get(‘/owners/&#39; + this.owner_id, function (data) {
callback && callback.call(self, data.name);
});
};
var album = new Album(1, ‘设计蜂巢&#39;, 2);
album.get_owner(function (owner) {
alert(‘The album&#39; + this.name + ‘ belongs to ‘ + owner);
});

Plus de différences et d'utilisations. entre l'appel Javascript et l'application Pour les articles liés aux méthodes, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn