全局对象
·JS自带许多属性
ECMAScript 规定全局对象叫做 global,但是浏览器把 window 作为全局对象(浏览器先存在的)
window 就是一个哈希表,有很多属性。
window 的属性就是全局变量。
这些全局变量分为两种:
1.ECMAScript规定的:
global.parseInt
global.parseFloat
global.Number
global.String
global.Boolean
global.Object
2.各种浏览器自加的属性
window.alert
window.prompt
window.comfirm
window.console.log
window.console.dir
window.document
window.document.createElement
window.document.getElementById
这些属性是浏览器启动的时候就存在的。
简单类型与复杂类型(对象)的区别
原型及原型链
每个对象都有的属性类似toString、valeOf作为共有属性存在(原型)。
对象的共有属性可以通过xxx.prototype查看
Number.prototype
String.prototype
Boolean.prototype
Object.prototype
......
但是如果原型存在而不引用的话就会被垃圾回收,所以浏览器在一开始声明这些属性的对象来引用这些原型 。当新对象声明后,其proto就是引用对应函数的prototype,组成原型链。
var object = new function()
Object.__proto__ === Function.prototype
true