Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery插件功能范围_Jquery_Function_Plugins_Scope - Fatal编程技术网

jQuery插件功能范围

jQuery插件功能范围,jquery,function,plugins,scope,Jquery,Function,Plugins,Scope,我遵循以下准则开发jQuery插件: 关于名称空间和方法的部分是我想知道的。我有6个这样定义的方法,其中三个使用我自己编写的helper函数。这是完全相同的函数,但出于某种原因,我必须在插件的每个方法中重写它。这是正常的,还是我可以把它放在某个地方一次,让它可以从我所有的功能访问?因此,借用上面引用的文章: var methods = { init : function( options ) { var etc = "etc." }, show : function( )

我遵循以下准则开发jQuery插件:

关于名称空间和方法的部分是我想知道的。我有6个这样定义的方法,其中三个使用我自己编写的helper函数。这是完全相同的函数,但出于某种原因,我必须在插件的每个方法中重写它。这是正常的,还是我可以把它放在某个地方一次,让它可以从我所有的功能访问?因此,借用上面引用的文章:

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对象等。因此,即使我想要一个非私有方法,这也行不通。