码迷,mamicode.com
首页 > Web开发 > 详细

js继承 prototype和constructor

时间:2016-04-10 14:16:51      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

function a(){
                this.name="aaa";
            }
            function b(){
                this.age=100;
            }
我们定义两个function,当我们实例化的对象的时候的操作是这样的
技术分享
var A=new a();
1、创建一个对象(有constructor属性及[[Prototype]]属性),根据ECMA,其中[[Prototype]]属性不可见、不可枚举
2、创建一个函数(有name、prototype属性),再通过prototype属性 引用 刚才创建的对象(constructor属性继承自object对象)
3、创建变量A,同时把函数的 引用 赋值给变量A

继承的实现就是通过原型的查找来实现的额

b.prototype=new a();
这样,b.prototype就拥有了name属性,但是没有constructor属性,所以打印b.prototype.constructor应该调用的是object的constructor
这样的话,b.prototype的指向就会有问题
所以,我们需要修正过来
b.prototype.constructor=b;
这样,就形成了一个闭环
var c=new b();
这样,c就可以访问a和b的所有属性了;

 

 

 

参考资料:http://blog.jobbole.com/19795/

js继承 prototype和constructor

标签:

原文地址:http://www.cnblogs.com/xiaodonger/p/5374016.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!