同樣不太好懂的箭頭函式this的指向

2021-08-28 14:03:53 字數 774 閱讀 4957

1、先來看乙個例子吧:(輸出什麼呢?)

var foo=,

b:()=>

}foo.foo(); foo.b();

答:foo.foo()//foo;

foo.b()//window;

第乙個foo.foo()是普通函式的執行,裡面的this指向呼叫foo函式的物件foo,那麼第二個為什麼是window呢?我開始是很不能 理解的,不是this指向定義時所在的物件嗎?

其實我覺得這句話解釋的不是很準確,記住下面這句話才是最重要的,this指向的固定化,並不是因為箭頭函式內部有繫結this的機制,實際原因是箭頭函式根本沒有自己的this,導致內部的this就是外層**塊的this。

所以在這裡箭頭函式內的this實際上是foo物件中的this。不懂什麼意思,看下面這個**塊兒:

var foo=;

a();

},b:()=>

}foo.foo();

foo.b();

abs繫結了foo物件的this,這裡foo是個全域性變數,裡面的this也是指向window。所以結果為:window、foo、window;

a箭頭函式的this就是foo()函式的this。b箭頭函式的this就是foo物件中的this

文章列表空著不太好看

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...

2023年,我真的不太好!!!

說起自己的2019,真是完全的跌落谷底。失業,對於我乙個80後,真是完全的找不到北。在乙個上有老下有小的年紀裡,突然的失去一切的經濟 完全的懵逼。這第一方面 歲數太大,我已經38了,對於乙個在it界仍然打拼在一線的人員來說,真的好像到了冬天。好多公司一看這小伙都已經這麼大了,竟然還在一線混,肯定是能...

ACM搞得不太好,還有必要嗎?

標題,正文 問題 如果搞acm搞得不太好,就是網路賽出不了線的話,還有必要搞acm嗎?是不是應該重新給自己定位,學點實用的技術比較好?回答 上高中,就是要考大學 上大學,以找到工作,或者上了研究生為目標。我們將成長過程忽略過去了。搞acm,不想著出線 獲獎,是不對的。但你也應該請楚,這只是其中的一部...