Maison >interface Web >js tutoriel >Quelles sont les façons de l'utiliser en javascript ?

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

coldplay.xixi
coldplay.xixioriginal
2021-03-31 13:39:122137parcourir

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

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

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

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 }

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!

Déclaration:
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