2011年10月21日
摘要: 介绍:这是篇简单的文章,其实就是引用的问题,但是挺绕的。问题:varf=function(){this.a=1}f.prototype.b=33vara1=newf()f.prototype={b:3}console.log(a1.b) //?分析: 这里结果是33还是3呢。初看上去是3,好像3覆盖了原来的33.如果分析一下对象生成的过程。f本身是一个对象A,new f 时。出一个新的对象C。这个对象有一个__proto__属性链接到f.prototye对象B。现在C已经指向了B。而后,f.prototype也就是B 又指向了D对象{b:3}。所以这里一共就A,B,C,D三个对象。看下图总结: 阅读全文
posted @ 2011-10-21 16:35 日—月 阅读(153) 评论(0) 推荐(0) 编辑