Jquery 为什么简单的fn.extend不起作用?

Jquery 为什么简单的fn.extend不起作用?,jquery,Jquery,我相信这很简单,但我没有注意到-为什么标记中的以下内容不起作用并弹出警报 jQuery.fn.extend({ sayHi: function () { alert('hello!'); } }); $(document).ready(function () { jQuery.sayHi(); }); 因为您设置了jQuery.fn.sayHi,而不是jQuery.sayHi(它是未定义的,因此会出现运行时错误) 在jQuery.fn上设置的方法仅可用

我相信这很简单,但我没有注意到-为什么
标记中的以下内容不起作用并弹出警报

jQuery.fn.extend({
    sayHi: function () {
        alert('hello!');
    }
});

$(document).ready(function () {
    jQuery.sayHi();
});

因为您设置了
jQuery.fn.sayHi
,而不是
jQuery.sayHi
(它是
未定义的
,因此会出现运行时错误)

jQuery.fn
上设置的方法仅可用于选择(jQuery对象),而不可用于
jQuery
功能

jQuery('body').sayHi()将起作用


有关插件开发的更多信息,请参阅。

您应该使用
jQuery.extend({sayHi:function(){alert('hello!');})
如果您想使用jQuery引用作为静态方法调用它,那么如果您想将其作为插件方法使用,请使用
jQuery.fn.extend