全局對(duì)象 window
ECMAScript 規(guī)定全局對(duì)象叫做 global鸭津,但是瀏覽器把 window 作為全局對(duì)象(瀏覽器先存在的)
window 就是一個(gè)哈希表病瞳,有很多屬性力穗。window 的屬性就是全局變量荷辕。
這些全局變量分為兩種:
一種是 ECMAScript 規(guī)定的
global.parseInt
global.parseFloat
global.Number
global.String
global.Boolean
global.Object
一種是瀏覽器自己加的屬性
window.alert
window.prompt
window.comfirm
window.console.log
window.console.dir
window.document
window.document.createElement
window.document.getElementById
所有 API 都可以在 MDN 里找到詳細(xì)的資料伟阔。
全局函數(shù)
1.Number:var = 1办桨; 和 var a = new number(1);的區(qū)別
var a = 1;//是將該值存儲(chǔ)在stack中。
?var a = new number(1)//是在stack中存儲(chǔ)一個(gè)地址垢箕,通過(guò)地址找到new number(1)划栓;
2.String boolean 和Number一樣。
3Object??
var o1 = {}? 和? var o2 = new Object() //? ?o1 和 o2 沒(méi)區(qū)別
共用屬性
所有對(duì)象都有 toString 和 valueOf 屬性,JS 的做法是把 toString 和 valueOf 放在一個(gè)對(duì)象里(暫且叫做公用屬性組成的對(duì)象)然后讓每一個(gè)對(duì)象的?__proto__?存儲(chǔ)這個(gè)「公用屬性組成的對(duì)象」的地址舰讹。
重要公式
var 對(duì)象 = new 函數(shù)()
對(duì)象.__proto__ === 對(duì)象的構(gòu)造函數(shù).prototype
// 推論
var number = new Number()
number.__proto__ = Number.prototype
var object = new Object()
object.__proto__ = Object.prototype
var function = new Function()
function.__proto__ = Function.prototype
// 另外茅姜,所有函數(shù)都是由 Function 構(gòu)造出來(lái)的,所以
Number.__proto__ = Function.prototype // 因?yàn)?Number 是函數(shù)月匣,是 Function 的實(shí)例
Object.__proto__ = Function.prototype // 因?yàn)?Object 是函數(shù)钻洒,是 Function 的實(shí)例
Function.__proto__ == Function.prototye // 因?yàn)?Function 是函數(shù),是 Function 的實(shí)例锄开!
.