原型
- 生成对象时,默认生成了一个
__proto__的地址,指向堆内存js自建的所有对象公用的prototype(浏览器一打开就生成好了) ,当你的私有属性调用所有对象公用的方法时,会去堆内存中找到prototype中需要的方法并返回你缩调用的值,所以obj1.toString===obj2.toString - 如果要调用比如Number的
toFixed方法,一般对象是没有这个方法的,所以在公共对象的prototype是没有这个方法的,js的做法是在把Number的特殊方法比如(toFixed)先放在堆内存中的一个__proto__中,再在__proto__中生成__proto__指向所有对象公用的__proto__,如果我们要调用所有对象公用的protype,就相当于js去找了2层 object的共有属性(原型)就是object.protetypeprotetype是浏览器建立好的公用属性(原型),__proto__是protetype的引用 ##var a=new String("b") a.__proto__===string.prototype
a.__proto__.__proto__===string.prototype.__proto__===object.prototype
函数.__proto__=function.prototype
##Function.prototype===Function.__proto__函数的__proto __指向自己的prototype !!!
对象.__proto__===函数.prototype深入理解__proto __是对象的属性,prototype是函数的属性


