Maison > interface Web > js tutoriel > Scénarios d'application d'appel à appliquer dans les compétences javascript_javascript

Scénarios d'application d'appel à appliquer dans les compétences javascript_javascript

WBOY
Libérer: 2016-05-16 16:03:43
original
1124 Les gens l'ont consulté

Nous voyons souvent quelque chose comme callback.call(xxx,xxx) dans certains plug-ins jQuery Bien que j'ai lu dans le livre que les fonctions call et apply peuvent changer la portée, je n'arrive toujours pas à comprendre complètement l'objectif principal. de changer la portée. Quels problèmes sont résolus, existe-t-il des alternatives, ou quels problèmes ces deux fonctions sont-elles principalement destinées à résoudre, des scénarios d'application, et quel est le moment le plus approprié pour les utiliser ? avoir le vertige et sortir de la lecture linéaire. Cela semble un peu alambiqué

.

La fonction d'appel et d'application est très simple, c'est-à-dire changer le contexte. Il y a trop de scénarios applicables Bien que parfois c'est juste pour la « beauté », les suivants sont ceux que j'utilise couramment.

1.

Copier le code Le code est le suivant :
Object.prototype.toString.call(Obj)

Utilisé pour déterminer le type d'Obj

Bien que les arguments soient similaires à Array, ils n'ont pas la méthode push d'Array. Que dois-je faire ?
Array.prototype.push.call(arguments)

3.Javascript n'a pas le concept de méthodes privées, je souhaite donc utiliser des fermetures pour l'implémenter

(function () {
  var Person = function () {
    this.doSomeThing = function () {
      _privateFunction.call(this);
    }
  }

  var _privateFunction = function () {

  }

  window.Person = Person;

}).call(window);

Copier après la connexion

C'est à peu près ce que cela signifie. Lorsque vous rappelez, lorsque vous souhaitez que le contexte de votre rappel soit le contexte actuel, vous pouvez également utiliser call ou postuler.

À l'heure actuelle, ceci dans votre rappel fait référence au contexte actuel. Par exemple, une classe Person et sa méthode say ont un paramètre de rappel. Si ce rappel est exécuté entre crochets ordinaires, alors les autres méthodes de personne exécutées dans ce rappel doivent être implémentées en utilisant person.other, mais le contexte est changé après. ça, tout est fait avec this.other~ La comparaison des codes est la suivante :

var Person = function(){

};

Person.prototype.say = function(callback){
  callback();
};

Person.prototype.other = function(){

};

var vincent = new Person();

vincent.say(function(){
  vincent.other();
});

Copier après la connexion

Appel utilisé :

var Person = function(){

};

Person.prototype.say = function(callback){
  callback.call(this);
};

Person.prototype.other = function(){

};

var vincent = new Person();

vincent.say(function(){
  this.other();
});
Copier après la connexion

Ce qui précède représente l’intégralité du contenu de cet article, j’espère que vous l’aimerez tous.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal