JavaScript原型的问题

上一阵有一个同事在W3C上改了学习了一段代码,然后改掉了一点,记得代码好像是这样

        function aFunction(name,age){
            this.name = name;
            this.age = age;
        }
        var aFun = new aFunction("我是小严",18);
        console.log("姓名:"+aFun.name+",年龄:"+aFun.age); //姓名:我是小严,年龄:18
        console.log(aFun.constructor.name) //aFunction  这是为什么呢

我想要的是this.name却给我一个方法名字,起先我还挺纳闷的,请看这、他是构造器指向的是本身

再看一段代码

        function aFunction(name,age){
            this.name = name;
            this.age = age;
        }
        var aFun = new aFunction("我是小严",18);
        console.log("姓名:"+aFun.name+",年龄:"+aFun.age); //姓名:我是小严,年龄:18
        aFun.constructor("我是大严!",15) //这是为什么呢
        console.log(aFun.name) //我是大严  直接覆盖了上一个结果

其实每个构造函数的实例继承了这一属性,所以实例的constructor指向它们的构造函数。看

        function aFunction(name,age){
            this.name = name;
            this.age = age;
        }
        var aFun = new aFunction("我是小严",18);
        console.log(aFun.constructor == aFunction)//true

 

 大致结构图是这个样子

posted @ 2016-10-17 17:18  小严  阅读(63)  评论(0)    收藏  举报