Heim > Web-Frontend > js-Tutorial > Welche Möglichkeiten gibt es, dies in Javascript zu verwenden?

Welche Möglichkeiten gibt es, dies in Javascript zu verwenden?

coldplay.xixi
Freigeben: 2023-01-03 09:32:00
Original
2141 Leute haben es durchsucht

So verwenden Sie dies in JavaScript: 1. Wenn die Funktion ein Objekt hat, zu dem sie gehört, zeigen Sie auf das Objekt, zu dem sie gehört. 2. Wenn die Funktion kein Objekt hat, zu dem sie gehört, zeigt sie auf das globales Objekt; 3. Dies im Konstruktor zeigt auf das neue Objekt.

Welche Möglichkeiten gibt es, dies in Javascript zu verwenden?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, DELL G3-Computer.

So verwenden Sie dies in JavaScript:

1) Wenn die Funktion ein Objekt hat, zu dem sie gehört: Zeigen Sie auf das Objekt, zu dem sie gehört.

Wenn die Funktion ein Objekt hat, zu dem sie gehört, wird sie normalerweise aufgerufen durch . Ausdruck, und dieser weist natürlich auf das Objekt hin, zu dem er gehört. Zum Beispiel das folgende Beispiel:

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
Nach dem Login kopieren

getValue() gehört zum Objekt myObject und wird von myOjbect aufgerufen, sodass dies auf das Objekt myObject verweist.

2) Die Funktion hat kein besitzendes Objekt: zeigt auf das globale Objekt

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
Nach dem Login kopieren

Obwohl im obigen Codeblock die foo-Funktion im Funktionskörper von getValue definiert ist, gehört sie tatsächlich weder zu getValue noch zu myObject. foo ist an kein Objekt gebunden, daher zeigt sein Zeiger this beim Aufruf auf das globale Objekt.

Es wird gesagt, dass es sich hierbei um einen Konstruktionsfehler handelt.

3) Dies im Konstruktor: zeigt auf das neue Objekt

In js rufen wir den Konstruktor über das Schlüsselwort new auf, und dieser wird an das neue Objekt gebunden.

var SomeClass = function(){
 this.value = 100;
}
 
var myCreate = new SomeClass();
 
console.log(myCreate.value); // 输出100
Nach dem Login kopieren

Übrigens gibt es in js keine klaren Grenzen zwischen Konstruktoren, gewöhnlichen Funktionen, Objektmethoden und Abschlüssen. Die Grenzen liegen alle im menschlichen Herzen.

4) Apply- und Call-Aufrufe und Bindungsbindung: Zeigt auf das gebundene Objekt. Die

apply()-Methode akzeptiert zwei Parameter. Der erste ist der Bereich, in dem die Funktion ausgeführt wird, und der andere ist ein Parameterarray (Argumente). .

Die Bedeutung des ersten Parameters der call()-Methode ist dieselbe wie die der apply()-Methode, außer dass die anderen Parameter einzeln aufgelistet werden müssen.

Einfach ausgedrückt ähnelt die Methode „call“ eher der Art und Weise, wie wir normalerweise Funktionen aufrufen, während „Apply“ erfordert, dass wir ihr ein Array in der Form „Array“ übergeben. Sie sind austauschbar.

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 }
Nach dem Login kopieren

Verwandte kostenlose Lernempfehlungen: Javascript-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWelche Möglichkeiten gibt es, dies in Javascript zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage