js面向对象:从工厂到混合

转载 (原文地址) tanxuxu 随笔 待整理 940阅读 2014-08-27 13:45:05 举报

工厂模式:
[code]
function Person(name,sex){
var obj=new Object();
obj.name=name;
obj.sex=sex;
obj.getname=function(){
alert(this.name)

            }
        obj.getsex=function(){
            alert(this.sex)
            }
        return obj;
        }
    var tanxu=Person('tanxu','men');
    var cdd=Person('cdd','women');
    alert(tanxu.getname==cdd.getname)[/code]

答案是false;意味着getname()方法没有达到共享,浪费资源

混合模式
[code]
function Person(name,sex){ //构造方法用来做属性
this.name=name;
this.sex=sex;
}
Person.prototype.getname=function(){ //原型用来做方法
alert(this.name);
}
Person.prototype.getsex=function(){
alert(this.sex);
}
var men=new Person('tanxu','men'); //new出实例
var women=new Person('cdd','women');
alert(men.getname==women.getname)
[/code]
输出true,方法达到公用,不至于浪费系统资源

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复