箭頭函式中this的指向

2021-09-27 09:30:52 字數 839 閱讀 9115

箭頭函式中this的指向

在箭頭函式中沒有this,箭頭函式中的this是它捕獲過來的,

注意:1.箭頭函式中的this一旦捕獲將無法在改變

2.箭頭函式是在它被宣告時開始捕獲的

3.什麼是宣告時呢? 就是箭頭函式被呼叫時

4.捕獲的是離它最近的父級的this的指向

舉個栗子:

var a=「測試「;

let fn()=>

fn();

分析:首先fn是乙個箭頭函式,當呼叫fn();時,箭頭函式被宣告,它開始捕獲離他最近的this,可以看出this指向window,所以輸出」測試「

var a="測試";

function consoleactive()

fun();

}consoleactive();

分析:箭頭函式fun被包含在函式consoleactive()中,當呼叫consoleactive()被呼叫時,箭頭函式被宣告,開始捕獲consoleactive()的this,consoleactive()存在於全域性中,所以this也指向全域性,輸出」測試「

var a="測試";

function consoleactive()

fun();

}var m=new consoleactive();

分析: consoleactive被用作建構函式。

使用new呼叫consoleactive函式之後,此函式作用域中的this指向建立的物件例項。

箭頭函式也隨之被宣告,此時捕獲這個this。

於是列印結果是"測試二",而不是測試。

箭頭函式中的this指向

let a a.bar undefinedbar函式中的this指向父作用域,而a物件沒有作用域,因此this不是a,列印結果為undefined function a a.prototype.bar console.log this.foo let a new a a.bar undefined原...

箭頭函式中的this指向

箭頭函式是es6新出的一種函式格式的寫法 文件對箭頭函式的解釋 箭頭函式相當於匿名函式,並且簡化了函式定義。箭頭函式有兩種格式,一種只包含乙個表示式,連和return都省略掉了。還有一種可以包含多條語句,這時候就不能省略和return 比如我們常見的foreach方法 var arr 1 2,3 4...

箭頭函式中的this指向

箭頭函式中的this指向 如果是箭頭函式,this指向是,父級程式的,this的指向 如果父級程式是乙個函式,函式也是有this的,那麼箭頭函式的this,就是父級函式的this 如果父級程式不是函式,例如物件,陣列等,沒有this指向,箭頭函式的this指向是window頂級物件 function...