關於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(){})                    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM