Der Inhalt dieses Artikels ist eine Einführung in mehrere Funktionsaufrufmethoden, auf die in JS hingewiesen wird. Ich hoffe, dass er für Freunde hilfreich ist.
JavaScript-Anfänger werden über diesen Zeiger immer verwirrt sein. Wenn Sie JavaScript gründlich erlernen möchten, müssen Sie zunächst einige diesbezügliche Konzepte klären. In JavaScript zeigt dies immer auf ein Objekt, aber das spezifische Objekt, auf das es zeigt, wird zur Laufzeit entsprechend der Funktionsausführungsumgebung dynamisch gebunden, nicht der Umgebung, wenn die Funktion deklariert wird. Mit Ausnahme der ungewöhnlichen Situationen „with“ und „eval“ kann dieser Zeiger in praktischen Anwendungen grob in die folgenden vier Typen unterteilt werden.
Wenn eine Funktion als Methode eines Objekts aufgerufen wird, zeigt dies auf das Objekt:
var person = { name: 'twy', getName: function() { console.info(this === person); // 输出true console.info(this.name); // 输出twy } } person.getName();
Wenn die Funktion als gewöhnliche Funktion aufgerufen wird, zeigt dies auf das globale Objekt im nicht-strikten Modus:
function getName(){ // 非严格模式 console.info(this === window); // 浏览器环境下输出true } getName();
Im strikten Modus ist dies undefiniert:
function getName(){ // 严格模式 "use strict" console.info(this === window); // 输出false } getName();
auf, wenn neu. Wenn ein Objekt ein Objekt ist, zeigt dies im Konstruktor auf das neue Objekt:
function person(){ // 构造函数 this.color = 'white'; } var boy = new person(); console.info(boy.color); // 输出white
Verwenden Sie Function.prototype.apply
oder Function.prototype.call
um diesen Punkt der eingehenden Funktion dynamisch zu ändern:
// 声明一个父亲对象,getName方法返回父亲的名字 var father = { name: 'twy', getName: function(){ return this.name; } } // 生命一个儿子对象,但是没有返回名字的功能 var child = { name: 'chy' } console.info(father.getName()); // 输出twy // 使用call或apply将father.getName函数里this指向child console.info(father.getName.call(child)); // 输出chy console.info(father.getName.apply(child)); // 输出chy
Das obige ist der detaillierte Inhalt vonEinführung in mehrere Funktionsaufrufmethoden, auf die hier in JS verwiesen wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!