我在節點殼測試此:誰是javascript中全局對象/作用域的原型對象?
var a = {}
a.__proto__ === Object.prototype // true
global.__proto__ === Object.prototype // false
global.__proto__.__proto__ === Object.prototype // true
global.constructor.name // 'Object'
global.__proto__.constructor.name // 'Object'
我的問題:
爲什麼全局對象(全局範圍)的原型是不是Object.prototype中?
爲什麼global的構造函數名顯示爲'Object',但它的原型不是Object.prototype?
'global'從哪裏來?這不是標準的JavaScript;無論如何 - [環境]範圍沒有原型。 – user2864740
您是否意識到'global'是node.js在其環境中自己構建的東西?這不是Javascript的標準部分。您的數據使它看起來像是從Object繼承的對象。 – jfriend00
@ user2864740我在Node shell和SpiderMonkey的JS shell中測試了這段代碼。結果是一樣的。將全局變爲「this」具有相同的輸出。 – matianfu