Heim > Web-Frontend > js-Tutorial > Wie ändert JavaScript diesen Zeiger? Kurze Analyse von drei Methoden

Wie ändert JavaScript diesen Zeiger? Kurze Analyse von drei Methoden

青灯夜游
Freigeben: 2022-09-19 09:57:53
nach vorne
2990 Leute haben es durchsucht

JavaScriptWie ändere ich diesen Zeiger? Der folgende Artikel stellt Ihnen drei Möglichkeiten vor, dies in JS zu ändern. Ich hoffe, er wird Ihnen hilfreich sein!

Wie ändert JavaScript diesen Zeiger? Kurze Analyse von drei Methoden

1. Dies zeigt auf

Klicken Sie, um das Video für eine detailliertere Erklärung zu öffnen

this随处可见,一般谁调用,this就指向谁。this在不同环境下,不同作用下,表现的也不同。
Nach dem Login kopieren

In den folgenden Situationen zeigt dies auf Fenster

1. Unter globaler Wirkung zeigt dies zum Fenster

console.log(window);
console.log(this);
console.log(window == this); // true
Nach dem Login kopieren

2. Wenn die Funktion unabhängig aufgerufen wird, zeigt dies innerhalb der Funktion auch auf das Fenster

function fun() {
   console.log('我是函数体');
   console.log(this);  // Window 
}
fun();
Nach dem Login kopieren

3 Wenn die verschachtelte Funktion unabhängig aufgerufen wird, zeigt dies standardmäßig auf das Fenster

function fun1() {
    function fun2() {
        console.log('我是嵌套函数');
        console.log(this);  // Window
    }
    fun2();
}
fun1();
Nach dem Login kopieren

4. Selbstoptimierende Ausführung Das interne This in der Funktion (sofortige Ausführung) zeigt auch auf das Fenster

(function() {
    console.log('立即执行');
    console.log(this);   // Window
})()
Nach dem Login kopieren

Was besondere Aufmerksamkeit erfordert, ist:

  • This im Konstruktor wird zum Definieren von Mitgliedern (Eigenschaften und) verwendet Methoden) für die Klasse 1. call()-Methode
call() 方法的第一个参数必须是指定的对象,然后方法的原参数,挨个放在后面。
(1)第一个参数:传入该函数this执行的对象,传入什么强制指向什么;
(2)第二个参数开始:将原函数的参数往后顺延一位
Nach dem Login kopieren

Verwendung: Funktionsname.call()
function fun() {
    console.log(this);  // 原来的函数this指向的是 Window
}
fun();
 
function fun(a, b) {
    console.log(this); // this指向了输入的 字符串call
    console.log(a + b);
}
//使用call() 方法改变this指向,此时第一个参数是 字符串call,那么就会指向字符串call
fun.call('call', 2, 3)  // 后面的参数就是原来函数自带的实参
Nach dem Login kopieren

2. apply()-Methode

apply() 方法的第一个参数是指定的对象,方法的原参数,统一放在第二个数组参数中。
(1)第一个参数:传入该函数this执行的对象,传入什么强制指向什么;
(2)第二个参数开始:将原函数的参数放在一个数组中
Nach dem Login kopieren

Verwendung: Funktionsname.apply()

function fun() {
    console.log(this);  // 原来的函数this指向的是 Window
}
fun();
 
function fun(a, b) {
    console.log(this); // this指向了输入的 字符串apply
    console.log(a + b);
}
//使用apply() 方法改变this指向,此时第一个参数是 字符串apply,那么就会指向字符串apply
fun.apply('apply', [2, 3])  // 原函数的参数要以数组的形式呈现
Nach dem Login kopieren
3. Methode bind()

Das obige ist der detaillierte Inhalt vonWie ändert JavaScript diesen Zeiger? Kurze Analyse von drei Methoden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
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