javascript类jquery结构

javascript类jquery结构,javascript,jquery,syntax,Javascript,Jquery,Syntax,我想知道是否有可能创建某种结构,其中可以执行以下操作: $(“某些元素”).somemethod(arg),这与说$.somemethod(“某些元素”,arg) 例如,我知道可以在jquery中使用$(选择器).each(回调),这似乎相当于$。each(选择器,回调)。不过,我发现很难理解jquery是如何做到这一点的。似乎方法“each”定义了两次,但这是我想要避免的。这可能吗?你的意思是这样的: 是的,这是可能的,你必须实现自己的插件 (function( $ ) { $.fn

我想知道是否有可能创建某种结构,其中可以执行以下操作:

$(“某些元素”).somemethod(arg)
,这与说
$.somemethod(“某些元素”,arg)


例如,我知道可以在jquery中使用
$(选择器).each(回调)
,这似乎相当于
$。each(选择器,回调)
。不过,我发现很难理解jquery是如何做到这一点的。似乎方法“each”定义了两次,但这是我想要避免的。这可能吗?

你的意思是这样的:



是的,这是可能的,你必须实现自己的插件

(function( $ ) {
    $.fn.somemethod = function() {
        return this.each(function() {
            // do something to each element here
        });
    };
}( jQuery ));

它们定义了两次,但是实际执行工作的代码只编写了一次

$.myPlugin = function(element,text){
    $(element).text(text); // work is done here
    return element;
}
$.fn.myPlugin(function(text) {
    return $.myPlugin(this,text);
});
下面是一个在jQuery核心中使用的示例:


它们实际上并不等同
$.fn.each=函数(a,b){return$.each(this,a,b)}区别是什么?它被定义了两次,但是,
$(选择器)。somemethod()
版本在内部使用
$。somemethod()
版本保持代码干燥。您可以参考api文档来了解这两个函数之间的区别及其各自的用法:和。。。
$.myPlugin = function(element,text){
    $(element).text(text); // work is done here
    return element;
}
$.fn.myPlugin(function(text) {
    return $.myPlugin(this,text);
});