最好的jQuery插件结构?

时间:2012-02-25 16:11:35

标签: javascript jquery jquery-plugins prototype

我正在尝试编写一个好的 jQuery插件结构。我试图遵循jQuery.com和其他人的“最佳实践”。

但我对原型有点困惑。

我应该使用它吗?实际结构看起来是好还是可怕?

谢谢!

(function( $ ){
    var defaults = { /* ... */ },
    publicMethods = {
        add: function(options){
            var $this = $(this);
            // ...
            return $this;
        }
    },
    privateMethods = {
        init: function(options) {
            var $this = $(this);
            return $this;
        },
        click: function() {
            //...
        }
    };
    $.fn.tooltip = function(method) {
        var args = arguments;

        $(this).each(function() {
            if ( publicMethods[method] ) {
                return publicMethods[ method ].apply( this, Array.prototype.slice.call( args, 1 ));
            } else if ( typeof method === 'object' || ! method ) {
                return privateMethods.init.apply( this, args );
            } else {
                $.error( 'Method ' +  method + ' does not exist on jQuery.tooltip' );
            }   
        });
    };
})( jQuery );

1 个答案:

答案 0 :(得分:1)

关于使用.prototype函数的tooltip,仅当工具提示函数将作为构造函数调用时才有用。

通常作为jQuery插件,您只对使用从jQuery构造函数创建的对象感兴趣,而不是从插件函数创建自己的对象。

在插件代码中可能存在内部使用构造函数的情况,但它通常不是实际的插件函数本身。