L'utilisation des trois fonctions appelle, s'applique et lie est un point de connaissance qui ne peut pas être surmonté en apprenant la langue de JavaScript. Permettez-moi de résumer l'utilisation des trois et les scénarios d'application courants.
Tout d'abord, regardez la fonction d'appel, qui peut être comprise comme «emprunt» et «demande». Imaginez le scénario suivant: vous errez seul et souhaitez appeler à la maison si vous avez des questions urgentes, mais malheureusement, votre téléphone est dû, ou il est hors de pouvoir, ou il tombe dans une fosse. En bref, votre téléphone ne fonctionne tout simplement pas. Mais vous devez passer cet appel, afin que vous puissiez emprunter le téléphone portable d'un ami, le téléphone portable d'un voisin ou un téléphone public. De cette façon, vous pouvez effectuer l'appel sans que votre téléphone soit disponible. Quant au téléphone que vous utilisez, cela n'a pas d'importance. Quoi qu'il en soit, c'est le même effet que passer un appel avec votre propre téléphone. L'intention d'origine de la fonction d'appel est également similaire à cela. Permettez-moi d'utiliser le code pour simuler son scénario d'application:
var frog = {name: 'frog', disant: function () {alert (this.name); }} var lapin = {nom: 'lapin'} frog.say.call (rubbit) // lapinRubbit est un objet stupide, mais s'il veut dire son nom, il est impossible de le réaliser avec sa propre capacité. Heureusement, il a un bon ami nommé Frog, qui peut parler. Donc, Rubbit a demandé à Frog de réaliser ce souhait. Le premier paramètre de Frog.Say.Call () doit être rempli à la personne qui a publié la demande, et l'avocat aime l'appeler le client. Voici la demande de la demande de rubbit pour dire le nom pour cela, alors remplissez Rubbit. De cette façon, en disant, le nom de Rubbit sera fouillé au lieu du nom de grenouille. À quoi cela ressemblerait-il si je remplissais la grenouille ici? C’est comme se demander de faire quelque chose et de vous nourrir de sel. Vous pouvez l'essayer:
var frog = {name: 'frog', disant: function () {alert (this.name); }} var lapin = {nom: 'lapin'} frog.say.call (grenouille) // grenouilleSe nourrir un sac de sel doit être votre nom, et ce n'est rien d'inattendu. Jetons un coup d'œil à l'utilisation classique de l'appel:
// convertit les paramètres en fonction d'objet de tableau réel frog () {var arr = [] .slice.call (arguments); console.log (arguments.slice, arr.slice) // function non définie Slice () {[code natif]}} grenouille (1,2,3,4)Après cet appel, nous pouvons utiliser l'objet Arguments comme objet Array. Il existe de nombreuses façons d'utiliser l'appel. Si vous ouvrez le code source de jQuery, vous pouvez facilement trouver de nombreux endroits pour l'utiliser. Je ne les énumérerai pas tous ici, mais je reviendrai sur la scène devant nous. Il est trop simple d'emprunter un appel téléphonique. Après avoir passé un appel téléphonique, je voudrais certainement ramener quelque chose. Après tout, je me promène depuis tant d'années et je n'ai pas été filial aux personnes âgées et j'ai acheté des spécialités locales pour revenir en arrière. C'est vraiment génial. Cependant, la pression de la vie à l'extérieur est si grande qu'en plus de travailler, il y a aussi des heures supplémentaires tous les jours. Si vous prenez congé, non seulement votre salaire sera déduit, mais vous devrez également dépenser beaucoup de dépenses de voyage. La somme de cet argent est probablement suffisante pour que les personnes âgées passent un an à la maison. Il n'était pas rentable d'y penser, alors j'ai encore réfléchi à la fonction d'appel. En lui demandant de l'aide, c'est un choix très sage de le ramener au fait, et il ne facture pas, ne limite pas la quantité, ne limite pas le poids, et il peut en apporter autant que vous. J'utiliserai le code pour le démontrer à nouveau:
var frog = {nom: 'grenouille', envoyer: fonction (argent, nourriture, lait, suagate) {alerte (argent + aliments + lait + suagate); }} var lapin = {name: 'lapin'} frog.send.call (Rubbit, 'Money', 'Food', 'Milk', 'Suagate')Si vous êtes riche et volontaire, vous pouvez même envoyer quelques iPhone6 Plus ou quelque chose. . ^ _ ^.
En parlant de cela, l'appel est presque terminé. Je ne sais pas si le drame de scène ci-dessus vous fait comprendre ce qu'est l'appel. Si cela suscite simplement votre mal du pays, je suis désolé.
L'appel a également un demi-frère appelé appliquer. Si vous comprenez l'utilisation de l'appel, alors postulez est en fait la même chose. La seule différence est que lorsque s'appliquer n'aime pas transmettre les choses, il semble très difficile de mettre une chose dans un sac, et ce n'est pas respectueux de l'environnement. Il a donc fourni une grande boîte pour les choses, et il suffit de mettre toutes les choses que vous voulez transmettre dans la boîte qu'elle a fournie. Cette grande boîte est un tableau. Si l'exemple ci-dessus est fait avec Appliquer, c'est comme ceci:
var frog = {nom: 'grenouille', envoyer: fonction (argent, nourriture, lait, suagate) {alerte (argent + aliments + lait + suagate); }} var lapin = {name: 'lapin'} // prêtez attention à la différence dans les paramètres frog.send.apply (rubbit, [`` argent '', «aliments», «lait», «suagate»])Ce qui précède est la vie passée et présente de l'application, appelez. Mais de façon inattendue, postuler et appeler le père de l'appel a fait fortune dans l'immobilier il y a quelques années, et il y avait un enfant illégitime nommé Bind à l'extérieur. Bien que ses deux frères appellent et postulent leurs débuts quelques années plus tard, leurs capacités ne devraient pas être sous-estimées. Cependant, son identité n'est pas reconnue à certains endroits. Par exemple, IE6. Ensuite, j'utiliserai le code pour démontrer ses compétences:
var name = 'rubbit'; var frog = {name: 'frog', disant: function () {setTimeout (fonction (argent, lait) {alert (this.name + argent + lait)} .bind (this, 'money', 'lait'), 1000)}} frog.say ();Grâce à la comparaison, il a été constaté que Bin peut être directement connecté à la fonction () {}. Il équivaut à enregistrer l'appel et à s'appliquer, et en spécifiant directement le principal et les paramètres à passer après la fonction. En termes de style de passage du sigma, cela ressemble plus à un appel.
En ce qui concerne Bind, jetons un coup d'œil à une autre utilisation classique:
var obj = {name: 'frog'} document.addeventListener ('click', function () {alert (this.name); // frog} .bind (obj), false);Pour résumer, appliquer, appeler, lier, les similitudes entre ces trois frères sont:
1. Le premier paramètre est la portée du gouvernement, c'est-à-dire dont le territoire est l'œuvre.
2. Tous les paramètres peuvent être passés
Les différences sont:
Appliquer, l'appel a une meilleure compatibilité, lier certaines versions inférieures des navigateurs ne le prennent pas en charge.
Les paramètres passés par application doivent être enveloppés dans un tableau, tandis que l'appel et la liaison sont répertoriés un par un.
Avez-vous acquis une compréhension plus profonde de l'utilisation des trois fonctions appelez, appliquez et liez? J'espère que cet article pourra vous être utile.