簡體   English   中英

為什么這個JavaScript代碼段會返回true?

[英]Why does this JavaScript snippet return true?

把這個例子看作是一種心理鍛煉。 我不明白為什么它返回true。 當然內this應該作用域的匿名函數和外this不涉及到功能都沒有。

 var result = (function() { return this; }()) === this; var el = document.createElement("div") el.innerHTML = result; document.body.appendChild(el) 

這里沒有太多的范圍,只有“背景”。

作為IIFE而不一個上下文中調用然后內this默認為window (除了在ES5“嚴格模式”),也正在的默認值this在全球范圍內。

這個問題不是范圍界定,而是背景。

JS中的Context(即this)通常被設置為調用函數的對象。

在這種情況下,沒有用戶定義的對象調用IIFE,因此其中的上下文默認為全局對象,因此為true。

指定嚴格模式將導致IIFE內的上下文未定義,從而降低意外全局對象更改的可能性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM