jQuery的核心對象、原型對象、靜態方法、動態方法


什么叫jQuery的核心對象?

  $    $===jQuery

什么叫jQuery的原型對象?

  $.fn    $.fn===$.prototype

 

什么叫靜態方法?

  在構造函樹上定義的方法,靜態方法通過構造函數去調用。例如:Math.random()

什么叫動態方法?

  動態方法也叫實例方法,在原型對象上添加的方法叫動態方法,通過實例對象去調用。例如:arr.slice()

 

jQuery的靜態方法和動態方法?

  給jQuery擴展插件的時候,有兩種方式,一種是$.extend()的方式,一種是$.fn的方式,$.extend()擴展的是靜態方法,$.fn擴展的是動態方法。

  jQuery的靜態方法用核心對象去調用,也就是用$去調用,jQuery的動態方法用原型對象去調用,也就是用$.fn去調用。

 

  現在給jQuery擴展一個獲取隨機色的方法:

    (function($){
      $.extend({
        randomColor:function(){
          var col="rgba(";
          for(var i=0;i<3;i++){
            col+=Math.floor(Math.random()*256)+",";
          }
          col+=Math.random().toFixed(2)+")";
          return col;
        }
      });
    })($);
  這就是擴展了一個靜態方法,使用時用$去調用。比如給div設置隨機色,$("div").css("backgroundColor",$.randomColor);
 
  現在給jQuery擴展一個獲取/設置背景色的方法:
    (function($){
      $.fn.bgc=function(color){
        if(!color) return this.css("backgroundColor");
        this.css("backgroundColor",color);
        return this;
      }
    })($);
  這就是擴展了一個動態方法,使用時用jQ對象去調用。比如設置div的背景色,$("div").bgc("red");這就是$.fn的方式,bgc()就是這個fn函數。

   

  也就是說,使用$.extend()是給jQuery添加了靜態方法,使用時用$調用,使用$.fn是給JQuery添加了動態方法,使用時用$.fn調用

$叫核心對象,$.fn叫原型對象。

  typeof $--------->function

  typeof $.fn--------->object

  $相當於類,由類直接調用方法,$.fn相當於實例對象,實例對象去調用方法。

 


免責聲明!

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



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