实例化的两种方法(new和函数法)

// 定义类 类名字是 classA 
function classA(){  
    this.b=1; 

classA.prototype.b=44; 
classA.prototype.show = function(){ 
    alert(this.b); 
}; 
// 用new实例化 
var b = new classA(); 
b.show();  //11没有this.b=1的话输出为44(现在构造函数里面找没找到再到原型上面找)
// 用函数实例化 
function newClass(cls,args){ 
    var obj = {}; 
    for(var p in cls.prototype) 
        obj[p] = cls.prototype[p]; 
    obj.__proto__ = cls.prototype; 
    cls.apply(obj,args||[]); 
    return obj; 
}; 
var k = newClass(classA); 
k.show(); 

posted @ 2014-10-21 10:01  暗语321  阅读(327)  评论(0编辑  收藏  举报