最佳方法添加方法到jQuery插件

3

“官方”文档http://docs.jquery.com/Plugins/Authoring#Namespacing指出,应该按照以下方式向jQuery插件添加方法。我很少看到这种设计模式的实现。如果其他插件使用var方法,可能会发生冲突。这真的是首选方法吗?还是我应该采用不同的方法?

(function( $ ){

 var methods = {
  method1: function( options ) {},
  method2: function( ) {}
 };

 $.fn.tooltip = function( method ) {
  if ( methods[method] ) {
   return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
  } else if ( typeof method === 'object' || ! method ) {
   return methods.init.apply( this, arguments );
  }
 };

})( jQuery );

我想,既然我没有收到其他答案或评论,prodigitalson的回答完全是正确的。 - user1032531
1个回答

0

如果您想使方法公开可访问,则是首选方法。另一个可能的选择,有时候建议使用的是,实际上创建一个完整的构造对象,而不仅仅是使用方法哈希。我不知道是否还需要这样做,因为您可以使用每个实例的根元素上的.data()来管理状态,但这是我以前看到并且欣赏的一种模式。

<rant>此外,最近我遇到了很多插件的问题...如果您要开源,请确保至少包括一个destroy方法来解除绑定您所做的所有操作。</rant>


1
谢谢 prodigitalson。我保证会包含一个销毁方法! - user1032531

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接