Heim >Web-Frontend >js-Tutorial >Dieser Mechanismus in JavaScript_Grundkenntnisse

Dieser Mechanismus in JavaScript_Grundkenntnisse

WBOY
WBOYOriginal
2016-05-16 15:16:511243Durchsuche

JavaScript verfügt über einen eigenen Mechanismus. In verschiedenen Situationen ist die Ausrichtung unterschiedlich.

Globale Reichweite

console.log(this); //全局变量

Der globale Bereich verwendet dies, um auf globale Variablen zu verweisen, die ein Fenster in der Browserumgebung sind.

Hinweis: Der strikte Modus von ECMAScript5 verfügt über keine globalen Variablen und diese sind hier undefiniert.

Funktionsaufruf

function foo() {
  console.log(this);
}

foo(); //全局变量

Dieser Funktionsaufruf verweist auch auf globale Variablen.

Hinweis: Der strikte Modus von ECMAScript5 verfügt über keine globalen Variablen und diese sind hier undefiniert.

Objektmethodenaufruf

var test = {
  foo: function () {
    console.log(this);
  }
}

test.foo(); //test对象

Bei Objektmethodenaufrufen verweist dies auf den Aufrufer.

var test = {
  foo: function () {
    console.log(this);
  }
}

var test2 = test.foo;
test2(); //全局变量

Aufgrund der späten Bindungsfunktion wird im obigen Beispiel jedoch auf die globale Variable verwiesen, was einem direkten Aufruf der Funktion entspricht.

Dies ist sehr wichtig. Das gleiche Codesegment kann nur ermittelt werden, wenn

ausgeführt wird

Konstrukteur

function Foo() {
  console.log(this);
}

new Foo(); //新创建的对象
console.log(foo); 

Im Konstruktor verweist dies auf das neu erstellte Objekt.

Stellen Sie dies explizit ein

function foo(a, b) {
  console.log(this);
}

var bar = {};

foo.apply(bar, [1, 2]); //bar
foo.call(1, 2); //Number对象

Bei Verwendung der Call- oder Apply-Methode von Function.prototype wird dieser innerhalb der Funktion als erster übergebener Parameter festgelegt.

Stellungnahme:
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