[TOC]
在网上看了很多关于new与Object.create()的区别的文章,看的稀里糊涂的,各种说法的都有,看“你不懂的JS”那本书上也提到了这个,看的怀疑人生了。遂自己总结下认为比较说的通的一种理解。
- 函数都有prototype,对象(包括函数)都有
__proto__
new
|
|
new首先创建一个空对象testA,然后改变this调用Test构造函数,最后将新对象的浏览器属性__proto__
指向Test的原型
|
|
Object.create()
|
|
创建一个临时对象F,最终testB的__proto__
指向Test构造函数
12345Object.prototype.create = function(Test){ var F = Function (){}; F.prototype = Test; return new F();}
感觉还是没彻底讲清楚。未完待续吧