全域window物件存盤特定于環境的屬性(例如,window.innerHeight)。
但是如果我們列印window到控制臺,我們將看到以不同顏色突出顯示的屬性。

這些包括Array, Object, 等等,雖然我認為它們是內部物件。
我有幾個問題:
- 這些“隱式”屬性是什么?
- JS 邊界在哪里結束,環境從哪里開始?
Array例如,我可以在 Node.js 中參考嗎?
謝謝你。
uj5u.com熱心網友回復:
在 Javascript 的早期,有一個主全域符號,全域范圍內可用的所有內容,無論是語言本身的一部分還是瀏覽器環境的一部分,都是該主全域的屬性。
在瀏覽器中,主全域是window物件。因此,您會在window物件上看到許多像Array建構式一樣全域可用的東西。
我猜想這是 JavaScript 最初被設計為在瀏覽器中運行的事實的副作用,并且最初并不是具有獨立規范的完全獨立的語言。
最近對語言規范的修訂不再向window物件添加一些新內容。例如,當您宣告 ES6 時,class例如:
class Foo {
constructor(greeting) {
this.greeting = greeting;
}
}
即使它可能在瀏覽器中全域可用,您也不會Foo在該window物件上找到它。
正如其他人所說,除錯輸出中的色差與符號是否可列舉有關,這是關于屬性是否以類似Object.keys()或for/in回圈的方式顯示的技術區別。該物業仍然存在,并且可以通過任何方式訪問。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/362018.html
標籤:javascript 节点.js
