《原型与原型链》

全局对象

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 的实例!

你可能感兴趣的:(《原型与原型链》)