首页 > 代码库 > 关于javascript中静态成员和实例成员的详细解释

关于javascript中静态成员和实例成员的详细解释

 

关于javascript中静态成员和实例成员的详细解释 

     在我们了解什么是静态成员和实例成员之前,我们首先来了解一下什么是实例?  

   实例就是由构造函数创建出来的对象。

     例如案例中 p 就是实例:   

     function Person() {}//  此函数为构造函数   

     var p=new Person();  // p为构造函数创建出来的对象

     我们在讨论静态成员和实例成员时候,把函数当成构造函数, 把创建出来的对象称之为实例。在此明白了什么是实例,下面我们就可以说什么是静态  成员和实例成员了。

  首先什么是实例成员?

   实例成员:由构造函数创建出来的对象能直接访问的属性和方法,包括:对象本身 以及原型中的所有的属性和方法。

   案例如下: function Person(name, age) {

                             this.name = name;  

                              this.age = age;  

                                  }

                 Person.prototype.sayHi = function() {

                                                       console.log("hello, rose");   

                                                    };  

                                              var p = new Person("jack", 19);    

                                ( p.name  p.age  p.sayHi)  括号内三个就是实例成员了。

          再次什么是静态成员?

          静态成员:由构造函数直接访问到的属性和方法。大家注意是直接访问的属性和方法,间接获取就不是了。

          案例如下: function Person(name, age) {  

                                              this.name = name;

                                                    this.age = age;  

                                                      }

                               var p = new Person("jack", 19);                

                            Person.say = function() {    alert("这是静态方法");            };        

                                     Person.say  就是静态成员            

                                      Person.length  也是静态成员,因为length是函数中的 方法,是来直接获取函数中形参的个数。

                           接下来会有人问,在实际工作中有什么用?我个人认为工作中用到的机会不多,有人会说工作中既然用的不多,  干嘛还废那么话来说,但是对于我们看Jquery源码是有用处的。         

      jQuery 的 each方法就是给静态成员实现这个方法,然后实例成员直接调用这个方法(大多数框架中都是使用该方法) 。    

        所有有了两种使用方式:

                $.each("div",function(){}) 

                $("div").each(function(){})                    

关于javascript中静态成员和实例成员的详细解释