zoukankan      html  css  js  c++  java
  • 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相当于实例对象,实例对象去调用方法。

  • 相关阅读:
    Navicat for Mysql远程连接数据时报(1045错误)Access denied for user 'root'@'localhost' (using password yes);
    添加数据源,管理工具--数据源(ODBC),点击添加不显示该驱动
    安装mysql odbc遇到error 1918.errror installing ODBC driver mysql ODBC 5.3 ANSI Drive
    ISO9126软件质量模型
    敏捷测试到底是灵丹妙药还是又一个忽悠
    CSS中背景图片的background-position中的left top到底是相对于谁的?
    制作可扩展的按钮
    CSS中的HSLA颜色
    JavaScript(jQuery)中的事件委托
    从零开始写一个微前端框架-数据通信篇
  • 原文地址:https://www.cnblogs.com/wuqilang/p/11206630.html
Copyright © 2011-2022 走看看