比如一个学生类,我这样设计:function Stundent(name){
this.name=name;
}
Stundent.prototype.run=function(){
alert(this.name+'跑步');
}
Stundent.prototype.walk=function(){
alert(this.name+'行走');
}
var Szs=new Stundent('张三')
Szs.run();
Szs.walk();
如果只能用函数,不能用类的形式,我该怎样设计,这样吗:function run(name){
alert(name+'跑步');
}
function walk(name){
alert(name+'行走');
}
run('李四')
还是这样:function student(name, kind){
    if(kind=='跑步'){
run(name)
}
    if(kind=='行走'){
walk(name)
}
}
function run(name){
alert(name+'跑步');
}
function walk(name){
alert(name+'行走');
}
student('李四','跑步')
有必要加这个student函数吗?还是有什么更好的方法?

解决方案 »

  1.   

    加student函数这个方法, 是不是违背了开闭原则?
      

  2.   

    个人觉得下面的方式比较好些,全局函数不是越多就越好的。function run(name){
    alert(name+'跑步');
    }
    function walk(name){
    alert(name+'行走');
    }
    run('李四')
      

  3.   


    var Stundent = (function(){
    return {
    name : '' , 
    init : function(name){
    this.name = name;

    },
    run : function(){
    alert(this.name+'跑步');

    },
    walk : function(){
    alert(this.name+'行走');

    }
    };
    })();
    Stundent.init('李四');
    Stundent.run();
    Stundent.walk();
      

  4.   


    function computeCost() {
    var dom = document.getElementById("fruit");
    dom.cost.value = dom.apple.value + dom.orange.value;
    }

    function stundent(name){
        arguments.callee.myname=name;
        return  arguments.callee;
    }
    stundent.run=function(){
        alert(stundent.myname+'跑步');
    }
    stundent.walk=function(){
        alert(stundent.myname+'行走');
    }
    var Szs=stundent('张三')
    Szs.run();
    Szs.walk();
      

  5.   


    function stundent(name){
        arguments.callee.myname=name;
        return  arguments.callee;
    }
    stundent.run=function(){
        alert(stundent.myname+'跑步');
    }
    stundent.walk=function(){
        alert(stundent.myname+'行走');
    }
    var Szs=stundent('张三')
    Szs.run();
    Szs.walk();
      

  6.   


    Javascript中没有类这个概念,虽然新的ECMAScript会添加类,但现在最好别这么叫