首页 > 其他 > 详细

使用寄生构造函数 创建类

时间:2015-09-03 13:58:49      阅读:228      评论:0      收藏:0      [点我收藏+]

 

类似于工厂模式创建类,不同的地方在于 调用时采用了new 构造函数的模式。

new的作用:改变this指向,普通的函数调用,this指向window或者调用了该函数的对象;  其次,通过new后,函数返回一个this对象,即实例对象

寄生构造函数:没有使用默认的this返回值,而是重新return了一个对象, 该对象与this指向的对象不同,完全独立的。

function ClassA(name){ 
    var obj = new Object();
    obj.name = name;
    obj.printName = function (){
        console.log(obj.name);
        console.log(this.name);
    }
    console.log(this,this==obj);  //this指向ClassA 

    return obj;  //覆盖返回的this ,此处如果不使用return 会默认返回ClassA的实例  this
}

var o = new ClassA(‘licui‘);
console.log(‘o instanceof ClassA:‘,o instanceof ClassA);  //false
o.printName();

 

使用寄生构造函数 创建类

原文:http://www.cnblogs.com/lydialee/p/4780105.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!