3
我目前正在研究一個很大的插件,我想知道如果這種模式添加公共方法有任何缺點,如果是的話是什麼?這個jQuery插件模式添加公共方法的缺點
編輯:爲了澄清,用這種方法,我可以看到的好處是,你可以使用任何可用的私有變量在插件的範圍,你可以很容易鏈中的方法。我看不到什麼缺點?它一直在正常工作,但我不確定在可伸縮性方面是否推薦使用大插件。
這裏的簡化代碼:
;(function($){
$.fn.myplugin = function() {
var self = this
var publicMethods = {
one: function() {
...
return self
},
two: function() {
...
return self
},
three: function() {
...
return self
}
}
for (var m in publicMethods)
self[m] = publicMethods[m]
return self
}
}(jQuery))
// Usage
var $myplugin = $('#foo').myplugin()
$myplugin.one().two().three()
但它真的會產生衝突嗎?我做了一個快速小提琴http://jsfiddle.net/elclanrs/jw6x2/。你會如何改變它?你能提供一個例子嗎? – elclanrs
我已經做了一些更多的測試,看起來你的第一點並沒有發生。我更新了小提琴。第二點是有爭議的,你認爲爲什麼不可維護? – elclanrs
假設OP的插件更多,以這種方式暴露公共方法可能是有意義的,但方法名必須是唯一的,否則它可能與另一個具有相同命名方法的插件衝突。命名空間'時,請參閱[這個線程](http://stackoverflow.com/questions/1219635/jquery-plugin-namespacing-functions) – PHearst