浏览 3243 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-03-19
function对象是没有的,只是function的prototype属性很特殊 var A=function(name){this.name=name}; var obj=new A("xx"); 1.先执行A,把里面的this用obj代替 2.把_inner引用指向A的prototype属性所指的地方 obj的constructor其实引用的是_inner的constructor new对象后,如果A的prototype指向其他对象,obj的_inner是不会改变的 obj.xx 会先访问obj的xx属性,如果没有会再访问obj的_inner的xx, 同样_inner是object的话,会继续访问_inner的_inner 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-03-19
建议你去看看ecma262关于这段的描述,会更加清晰
|
|
返回顶楼 | |
发表时间:2008-03-19
"function对象是没有的",原型继承是不区分对象的,function是对象,自然有原型继承,继承的就是Function.prototype和Object.prototype
"constructor"不可靠,只不过是原型继承构造函数原型属性引用,但是原型属性"constructor"引用不可靠,所以不能说的太绝对 |
|
返回顶楼 | |
发表时间:2008-03-20
谢谢,看来我的理解有点误差
|
|
返回顶楼 | |