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('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);
2.2. :
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. 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/' + this.owner_id, function (data) { callback && callback.call(self, data.name); }); }; var album = new Album(1, ‘设计蜂巢', 2); album.get_owner(function (owner) { alert(‘The album' + 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 !