jQuery插件功能范围
我遵循以下准则开发jQuery插件: 关于名称空间和方法的部分是我想知道的。我有6个这样定义的方法,其中三个使用我自己编写的helper函数。这是完全相同的函数,但出于某种原因,我必须在插件的每个方法中重写它。这是正常的,还是我可以把它放在某个地方一次,让它可以从我所有的功能访问?因此,借用上面引用的文章:jQuery插件功能范围,jquery,function,plugins,scope,Jquery,Function,Plugins,Scope,我遵循以下准则开发jQuery插件: 关于名称空间和方法的部分是我想知道的。我有6个这样定义的方法,其中三个使用我自己编写的helper函数。这是完全相同的函数,但出于某种原因,我必须在插件的每个方法中重写它。这是正常的,还是我可以把它放在某个地方一次,让它可以从我所有的功能访问?因此,借用上面引用的文章: var methods = { init : function( options ) { var etc = "etc." }, show : function( )
var methods = {
init : function( options ) {
var etc = "etc."
},
show : function( ) {
...
doStuff();
function doStuff() {
// well, do stuff
}
...
},
hide : function( ) {
...
doStuff();
function doStuff() {
// well do the same stuff!
}
},
update : function( content ) {
// etc.
}
};
看到我如何重新定义doStuff()函数了吗?我不喜欢那样!有什么想法吗
谢谢
编辑:对于“helper函数”,我指的是一个在OO中声明为私有的函数
再次编辑:不要担心私有部分,因为最明显的解决方案(放在“方法”部分)不起作用。我不太确定您想要实现什么。但是你不能把doStuff()放在“methods”对象中,然后从其他函数内部调用这个.doStuff()/methods.doStuff()?我想他希望doStuff从外部不可访问。你想得对。doStuff()与外部世界没有任何关系。因此,事实证明,不,我不能将doStuff()放入methods对象等。因此,即使我想要一个非私有方法,这也行不通。