Heim > Web-Frontend > js-Tutorial > js-Ausführungskontextvariablen, Funktionen usw

js-Ausführungskontextvariablen, Funktionen usw

不言
Freigeben: 2018-07-05 17:25:21
Original
2118 Leute haben es durchsucht

In diesem Artikel geht es hauptsächlich um Variablen und Funktionen für die Ausführung von js. Jetzt kann ich ihn mit allen teilen, die ihn benötigen.

Ausführung im JavaScript-Kontext und Aufrufstapel

ES6-Variablenumfang und -förderung: Detaillierte Erläuterung des Variablenlebenszyklus

Variablenförderung

  • Die Definition von Variablen finden Sie in Definieren Sie beim Vorbereiten

  • am oberen Rand des Bereichs ohne Variable ohne Variablenförderung

console.log(a);  // undefined,如果没有定义会直接报错
var a = 'aaa';
console.log(a);  // aaa

// 下面代码全等于上面代码
var a;  // 变量提升,函数作用域范围内
console.log(a);  // undefined
a = 'aaa';
console.log(a);  // aaa

console.log(a);  // 直接报错
a = 'aaa';
Nach dem Login kopieren

Funktionsförderung

  • Die Definition der Funktion wird beim Code-Vorparsen oben im Bereich definiert

  • Die Funktionszuweisung befindet sich oben im Bereich

console.log(f1);  // f1() { console.info('函数'); }
var f1 = function() { console.info('变量'); }
console.log(f1);  // ƒ () { console.info('变量'); }
function f1() { console.info('函数'); }
console.log(f1);  // ƒ () { console.info('变量'); }

// 下面代码全等于上面代码
var f1;  // 定义提升
function f1() { console.info('函数'); }  // 函数顶部赋值
console.log(f1);  // f1() { console.info('函数'); }
f1 = function() { console.info('变量'); }
console.log(f1);  // ƒ () { console.info('变量'); }
console.log(f1);  // ƒ () { console.info('变量'); }
Nach dem Login kopieren

Funktionskontextbeziehung

  • Der Kontext der Funktion wird bestimmt, wenn sie definiert wird

var scope = "global scope";
function checkscope() {
  var scope = "local scope";
  function f() { return scope; }
  return f;
}
checkscope()();  // local scope
Nach dem Login kopieren

dieser Kontext

  • this Der Kontext wird zur Ausführungszeit bestimmt

Normaler Funktionsaufruf, dieser zeigt auf das Fenster

// 在 function 里
function test() {
    var type = this === window;
    return type;
}
test();  // true
Nach dem Login kopieren

Methodenaufruf , dies zeigt auf das aufrufende Objekt

// 在对象里
var obj = {
    test: function() {
        var type = this === obj;
        return type;
    }
};
obj.test();  // true

// 在 prototype 对象的方法中
function obj() {
}
obj.prototype.test = function() {
    return this;
}
var o = new obj();
o.test() === o;  // true
Nach dem Login kopieren

Konstruktorfunktion Aufruf, dies zeigt auf das Objekt, das durch new generiert wurde

// 调用 new 构造对象时
function obj() {
    this.test = function() {
        return this;
    }
}
var o = new obj();
o.test() === o;  // true
Nach dem Login kopieren

apply / call Aufruf

function test() {
    return this;
}
var o = {};

// apply
test.apply(o) === o;  // true

// call
test.call(o) === o;  // true
Nach dem Login kopieren

Im Ereignisattribut von dom

// 点击后输出 true
<input id="a" type="text" onclick="console.info(this === document.getElementById(&#39;a&#39;))" />

// 点击后输出 true
<input id="a" type="text" />
<script type="text/javascript">
    document.getElementById(&#39;a&#39;).addEventListener("click", function(){
        console.info(this === document.getElementById(&#39;a&#39;));
    });
</script>

// 点击后输出 true
<input id="a" type="text" />
<script type="text/javascript">
    document.getElementById(&#39;a&#39;).onclick = function(){
        console.info(this === document.getElementById(&#39;a&#39;));
    });
</script>
Nach dem Login kopieren

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, Sie können daraus lernen. Hilfreiche Informationen. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website!

Verwandte Empfehlungen:

JS und JQ realisieren den Fokusdiagramm-Karusselleffekt

js realisiert die Bearbeitung durch Klicken auf die Schaltfläche

Über JS Einführung in die Vererbung

Das obige ist der detaillierte Inhalt vonjs-Ausführungskontextvariablen, Funktionen usw. 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