What does jQuery.fn mean?

前端 未结 4 1538
说谎
说谎 2020-11-22 09:03

What does the fn here mean?

jQuery.fn.jquery
4条回答
  •  [愿得一人]
    2020-11-22 09:38

    In jQuery, the fn property is just an alias to the prototype property.

    The jQuery identifier (or $) is just a constructor function, and all instances created with it, inherit from the constructor's prototype.

    A simple constructor function:

    function Test() {
      this.a = 'a';
    }
    Test.prototype.b = 'b';
    
    var test = new Test(); 
    test.a; // "a", own property
    test.b; // "b", inherited property
    

    A simple structure that resembles the architecture of jQuery:

    (function() {
      var foo = function(arg) { // core constructor
        // ensure to use the `new` operator
        if (!(this instanceof foo))
          return new foo(arg);
        // store an argument for this example
        this.myArg = arg;
        //..
      };
    
      // create `fn` alias to `prototype` property
      foo.fn = foo.prototype = {
        init: function () {/*...*/}
        //...
      };
    
      // expose the library
      window.foo = foo;
    })();
    
    // Extension:
    
    foo.fn.myPlugin = function () {
      alert(this.myArg);
      return this; // return `this` for chainability
    };
    
    foo("bar").myPlugin(); // alerts "bar"
    

提交回复
热议问题