Maison > interface Web > js tutoriel > le corps du texte

Quelles sont les façons de l'utiliser en javascript ?

coldplay.xixi
Libérer: 2023-01-03 09:32:00
original
2121 Les gens l'ont consulté

Comment utiliser ceci en JavaScript : 1. Lorsque la fonction a un objet, elle pointe vers l'objet ; 2. La fonction n'a pas d'objet et pointe vers l'objet global ; pointe vers le nouvel objet.

Quelles sont les façons de l'utiliser en javascript ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur DELL G3.

Comment utiliser ceci en JavaScript :

1) Lorsque la fonction a un objet auquel elle appartient : pointez sur l'objet auquel elle appartient

La fonction appartient Lorsqu'un objet est utilisé, il est généralement appelé via une expression. Dans ce cas, celle-ci pointe naturellement vers l'objet auquel il appartient. Par exemple, dans l'exemple suivant :

var myObject = {value: 100};
myObject.getValue = function () {
 console.log(this.value); // 输出 100
 
 // 输出 { value: 100, getValue: [Function] },
 // 其实就是 myObject 对象本身
 console.log(this);
 
 return this.value;
};
 
console.log(myObject.getValue()); // => 100
Copier après la connexion

getValue() appartient à l'objet myObject et est appelé par myOjbect, donc cela pointe vers l'objet myObject.

2) La fonction n'a pas d'objet propriétaire : pointe vers l'objet global

var myObject = {value: 100};
myObject.getValue = function () {
 var foo = function () {
  console.log(this.value) // => undefined
  console.log(this);// 输出全局对象 global
 };
 
 foo();
 
 return this.value;
};
 
console.log(myObject.getValue()); // => 100
Copier après la connexion

Dans le bloc de code ci-dessus, bien que la fonction foo soit définie dans le corps de la fonction de getValue, en fait c'est les deux. N'appartient ni à getValue ni à myObject. foo n'est lié à aucun objet, donc lorsqu'il est appelé, son pointeur this pointe vers l'objet global.

On dit qu'il s'agit d'une erreur de conception.

3) Ceci dans le constructeur : pointe vers le nouvel objet

En js, on appelle le constructeur via le mot-clé new, et celui-ci sera lié au on de nouveaux objets.

var SomeClass = function(){
 this.value = 100;
}
 
var myCreate = new SomeClass();
 
console.log(myCreate.value); // 输出100
Copier après la connexion

Au fait, en js, il n'y a pas de frontières claires entre les constructeurs, les fonctions ordinaires, les méthodes objet et les fermetures. Les limites sont toutes dans le cœur humain.

4) appliquer et appeler les appels et lier la liaison : pointer vers l'objet lié

la méthode apply() accepte deux paramètres. Le premier est la fonction de l'opération de fonction. . domaine, et l’autre est un tableau de paramètres (arguments).

La signification du premier paramètre de la méthode call() est la même que celle de la méthode apply(), sauf que les autres paramètres doivent être listés un par un.

Pour faire simple, la méthode call est plus proche de la façon dont nous appelons habituellement les fonctions, tandis que apply nous oblige à lui passer un tableau sous la forme de Array. Ils sont interchangeables.

var myObject = {value: 100};
 
var foo = function(){
 console.log(this);
};
 
foo(); // 全局变量 global
foo.apply(myObject); // { value: 100 }
foo.call(myObject); // { value: 100 }
 
var newFoo = foo.bind(myObject);
newFoo(); // { value: 100 }
Copier après la connexion

Recommandations d'apprentissage gratuites associées : Tutoriel vidéo javascript

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

É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