4

将一个插件分配给 jQuery 原型属性。当一个人不使用 jQuery 的“新”时,这样做有什么意义?只有一个 jQuery 实例不是吗?那么插件不能直接分配给单例jQuery对象吗?

4

1 回答 1

3

插件方法必须自动添加到创建的每个新 jQuery 对象中。

jQuery.fnjQuery.prototype将插件方法分配给将jQuery.fn其添加到 jQuery 原型中相同,因此每当创建新的 jQuery 对象时,该方法将自动可用。从技术上讲,它是一个jQuery.fn.init对象,但想法是一样的。

使用这样的字符串调用 jQuery:

$(".foo")

创建一个新的 jQuery.fn.init 对象,该对象从 jQuery.fn(定义插件方法的地方)获取其原型。

下面是相关的 jQuery 代码,它显示了一个正在创建的新对象:

// Define a local copy of jQuery
var jQuery = function( selector, context ) {
    // The jQuery object is actually just the init constructor 'enhanced'
    return new jQuery.fn.init( selector, context, rootjQuery );
},


// Give the init function the jQuery prototype for later instantiation
jQuery.fn.init.prototype = jQuery.fn;
于 2012-09-23T01:17:42.773 回答