码迷,mamicode.com
首页 > 其他好文 > 详细

使用寄生构造函数 创建类

时间:2015-09-03 13:59:39      阅读:127      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!