全局对象
1: glabol:ECMAscript标准;2:window:浏览器标准。
ECMAScript 规定的:
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
下面主要说ECMAscript规定的 全局对象,Number(),String(),Boolean(),Object();
全局函数
var n=new Number(),var s =new String(),var b = new Boolean(),var o = new Object(); 四个都是函数,他们创建的时候都有一个叫做__proto__内置属性,可用来引用浏览器准备的prototype属性。并且他们 都有 共有的属性 例如valueof toString,JS把他们放在公用属性组成的对象。然后让每一对象的__proto__存储这个公用属性组成的对象的地址。
临时对象
上图可以看到,创建变量a,a.xxx赋值,赋完值之后在打印结果却是undefined,这个例子 主要说名 js中的妙计,js之父方法,采用临时对象方法(temp),临时对象,赋完值后消失。
原型
上图解释:string.prototype是string的共有属性引用,防止垃圾回收。s.__proto__是string的公用属性的引用、
js在创建对象的时候,都有一个叫做__proto__的内置属性,它可用来引用浏览器准备的prototype,Object的共有属性是所有属性类型共有属性。(Number,Boolean,String,Object)
重点:对象.__proto__===函数.prototype重点:对象.__proto__===函数.prototype
区别 1 是对象属性 2是函数属性
推论//
var number = new Number(), number.__proto__ = Number.prototype
var object = new Object(); object.__proto__ = Object.prototype
var function = new Function(),function.__proto__ = Function.prototype
//另外,所有函数都是由Function构造出来的,所以
Number.__proto__ = Function.prototype // 因为Number是函数,是Function的实例
Object.__proto__ = Function.prototype // 因为 Object 是函数,是 Function 的实例
Function.__proto__ == Function.prototye // 因为 Function 是函数,是 Function 的实例!
网友评论