1. Définition de la méthode
Méthode d'appel:
Syntaxe: appel ([thisObj [, arg1 [, arg2 [, [, .argn]]]]])
Définition: Appelez une méthode d'un objet pour remplacer l'objet actuel par un autre objet.
illustrer:
La méthode d'appel peut être utilisée pour appeler une méthode au lieu d'un autre objet. La méthode d'appel modifie le contexte de l'objet d'une fonction du contexte initial à un nouvel objet spécifié par ThisOBJ.
Si ce paramètre ce paramètre n'est pas fourni, l'objet global est utilisé comme thisObj.
Appliquer la méthode:
Syntaxe: Appliquer ([thisObj [, argarray]])
Définition: appliquez une méthode d'un certain objet et remplacez l'objet actuel par un autre objet.
illustrer:
Si Argarray n'est pas un tableau valide ou n'est pas un objet d'arguments, une tactéror sera générée.
Si aucun argument n'est fourni, l'objet global sera utilisé comme thisObj et ne peut être transmis aucun argument.
2. Exemples courants
un.
La copie de code est la suivante:
fonction ajouter (a, b)
{
alerte (a + b);
}
fonction sub (a, b)
{
alerte (ab);
}
add.Call (sub, 3,1);
La signification dans cet exemple est de remplacer Sub par Add, add.Call (sub, 3,1) == Add (3,1), donc le résultat en cours est: alerte (4); // Remarque: La fonction dans JS est en fait un objet, et le nom de la fonction est une référence à l'objet de fonction.
né
La copie de code est la suivante:
fonction animal () {
this.name = "animal";
this.showname = function () {
alert (this.name);
}
}
fonction Cat () {
this.name = "cat";
}
var animal = nouvel animal ();
var cat = new Cat ();
// via la méthode d'appel ou d'application, la méthode affichée () appartenant à l'origine à l'objet animal est remise à l'objet Cat pour une utilisation.
// Le résultat d'entrée est "Cat"
animal.showname.call (chat, ",");
//animal.showname.apply (cat, []);
L'appel signifie mettre la méthode animale sur CAT à exécuter. Il s'avère que le chat n'a pas de méthode wameadame (). Maintenant, en mettant la méthode animale close-nom () sur chat à exécuter, donc ce nom ne devrait être CAT
c. Réaliser l'héritage
La copie de code est la suivante:
fonction animal (nom) {
this.name = name;
this.showname = function () {
alert (this.name);
}
}
fonction Cat (name) {
Animal.Call (ceci, nom);
}
var chat = nouveau chat ("chat noir");
cat.showname ();
Animal.Call (ceci) signifie utiliser un objet animal au lieu de cet objet. Ensuite, il n'y a pas toutes les propriétés et méthodes d'animaux chez le chat? L'objet CAT peut appeler directement les méthodes et les propriétés des animaux.
d. Héritage multiple
La copie de code est la suivante:
Fonction Class10 ()
{
this.showsub = fonction (a, b)
{
alerte (ab);
}
}
Classe de fonction 11 ()
{
this.showadd = fonction (a, b)
{
alerte (a + b);
}
}
Classe de fonction 2 ()
{
Classe 10.Call (ceci);
Classe 11.Call (this);
}
C'est très simple, en utilisant deux appels pour obtenir un héritage multiple
Bien sûr, il existe d'autres méthodes pour hériter de JS, comme l'utilisation de chaînes de prototypes, qui ne tombent pas dans le cadre de cet article, mais explique uniquement l'utilisation de l'appel ici. En parlant d'appel, bien sûr, il y a aussi une application. Ces deux méthodes signifient essentiellement la même chose. La différence est que le deuxième paramètre de l'appel peut être de n'importe quel type, tandis que le deuxième paramètre d'application doit être un tableau ou des arguments
Et Callee, appelant ..