静态,只有一个"实例".实用于那些唯一的对象如 获取浏览器信息,cookie 操作var cookieHelp={
get:function(key){},
set:function(key,value){}
};
实例方法,可以实例化多个对象。实用于一个页面可能不唯一的对象。
比如 选项卡封装类,省市2级联动封装类var Tab=function(){
this.setTab=function(){};
}var tab1=new Tab();
var tab2=new Tab();

解决方案 »

  1.   

    拿jquery框架来看,它的方法都是实例方法,它的工具函数都是静态方法。实例调用方式$("body").each(//fun...); 静态方法 $.each($("body"),fun);
      

  2.   

    静态方法是在处理性质上相似的一些公用函数,抽象出来,绑定到一个类下来进行管理。js中可以在一个构造器上加它自己的属性方法来作为静态方法和静态属性。实例方法和静态类似,也是同一批操作的集合,不过实例方法会有相同的处理重心this,也就是说,实例方法是当前对象this的某个动作或行为,特殊强调当前的上下文this。静态方法更像是工具集,是通用功能的抽取,实例方法更强调上下文的服务者,是一类对象特征的抽象。
    以上纯属个人胡诌。
      

  3.   

    比如兔子类,rabbit1 = new Rabbit();
    rabbit1.getColor(); 
    rabbit1.eat('carrot');
    rabbit1.run();getColor eat肯定会设计成实例方法,因为方法是围绕对象的,是对象的某个特征,不同的兔子可以有不同的颜色。
    如上的方法,要写成静态的也可以,只是就会感觉很别扭:
    Rabbit.getColor(rabbit1);
    Rabbit.makeItRun(rabbit1);
    Rabbit.letItEat(rabbit1,'carrot');//让兔子1吃胡萝卜 很奇怪的API如果我们想有一个函数,它能为特定的兔子定制一个合适的笼子,我们姑且叫他createComfortableCage,那我宁愿写成静态方法。
    cage1 = Rabbit.createComfortableCage(rabbit1);当然,如果这个静态方法写在Cage类上,会更好。
    cage1 = Cage.createComfortableCage(rabbit1);
    cage1.getWidth();
    cage1.getPrice();  
    ...
     
      

  4.   


    function A(){}
    A.staticMethof = function(){
      alert('静态方法');
    }
    A.prototype.instaceMethod = function(){
      alert('实例方法');
    }
    A.staticMethof();
    var instace = new A();
    instace.instaceMethod();LZ可以这么理解,静态方法是类直接调用,实例方法要new 出来的对象才能调用。怎么用就看具体问题了。
      

  5.   

    function A(){}
    A.staticMethod = function(){
      alert('静态方法');
    }
    A.prototype.instaceMethod = function(){
      alert('实例方法');
    }
    A.staticMethod();
    var instace = new A();
    instace.instaceMethod();写错一个单词
      

  6.   

    function A(){}
    A.staticMethod = function(){
      alert('静态方法');
    }
    A.prototype.instaceMethod = function(){
      alert('实例方法');
    }
    A.staticMethod();
    var instace = new A();
    instace.instaceMethod();写错一个单词function A(){}
    A.staticMethod = function(){
      alert('静态方法');
    }
    A.prototype.instaceMethod = function(){
      alert('实例方法');
    }
    A.staticMethod();
    var instace = new A();
    instace.instaceMethod();写错一个单词
    这个 结局了我的 问题  真是太感谢了