前端开发jQuery原型关系

前端开发需要掌握de 软件开发流程,前端后台对接 自学前端开发大概需要多久

Javascript代码
/**

  • ① 何为 jquery
  • window 是对象,它有两个属性,分别为 jquery 和 $,其值是一函数,此函数的名字是 jquery。在函数
  • 的定义实体中,其实是通过 jQuery.fn.init 函数来构造对象的,init 函数才是真正的构造函数。也就是说,
  • 我们通过 ${ … ) 得到的其实就是 jQuery.fn.init 的实例。
    */
    var jQuery = window.jQuery = window.$ = function( selector, context ) {
    // The jQuery object is actually just the init constructor ‘enhanced’
    return new jQuery.fn.init( selector, context );
    };

Javascript代码
/**

  • ② 所谓的 jQuery 的体魄
  • jQuery 函数有两个属性,分别为 fn 和 prototype,其值是一匿名对象(json 对象)。
    */
    jQuery.fn = jQuery.prototype = {
    init: function( selector, context ) {

    },

    jquery: "1.2.6",  
    
    get: function( num ) {  
        ...  
    },  
    
    ...  

    }

Javascript代码
/**

  • ③ 赋予 jQuery 力量吧
  • 这段代码别看就一句话,很短,不是吗?但这段代码是非常重要的。
  • 首先,init 只是一个函数,通过 jQuery.fn.init 构造出来的对象,只是 jQuery.fn.init 的实例而已,
  • jQuery.fn 之前也说了,它是一匿名的 json 对象,包含 init 等等函数,我们想让 jQuery.fn.init 构造
  • 出来的对象具备很多行为的话,prototype 就是最好的手段之一。假设我们定义一个 function,名字叫做 Car
  • 吧,使用 prototype 为其添加行为的方式我们很熟悉吧:
  • function Car(owner) {
  • this.owner = owner;
  • }
  • Car.prototype = {
  • go: function() { … }
  • brake: function() { … }
  • }
  • 这样,通过 new Car() 构造出来的对象就具备了 go 和 brake 行为。
  • 因此,就因为下面的一句话,被 init 构造出来的对象就具备了 jQuery.fn 所定义的所有行为了,很帅吧!
    */
    // Give the init function the jQuery prototype for later instantiation
    jQuery.fn.init.prototype = jQuery.fn;

Javascript代码
/**

  • ④ 给我扩展的自由好吗
  • 诚然,jQuery 或 jQuery.fn 定义的 function 你有可能会觉得不够用,没关系,John Resig 为我们提供了
  • 扩展的空间。jQuery 和 jQuery.fn 都有一个名字为 extend 的属性,该属性的类型就是一个 function,
  • 这个 function 本身就已经为我们提供了扩展功能。
  • extend 属性所代表的 function,不过 50 行代码,写的太精辟了,有时间的话,大家可以一步一步的调试下,
  • 见识下 John Resig 的神功~
    */
    jQuery.extend = jQuery.fn.extend = function() {
    ……
    }
    整个 jQuery 的核心内容就是以上四块代码,诸如事件处理的代码,你都可以从以上四块代码找到影子。Enjoy jQuery~

web前端开发需要考的证 前端开发用软件 前端开发需要艺术吗

» 本文来自:前端开发者 » 《前端开发jQuery原型关系》
» 本文链接地址:https://www.rokub.com/5590.html
» 您也可以订阅本站:https://www.rokub.com
赞(0)
64K

评论 抢沙发

评论前必须登录!