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.
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!