【发布时间】:2017-01-17 17:11:45
【问题描述】:
所以我似乎无法找到直接的答案,只有使用类似插件/方法声明的多个变体的模糊示例。我是这么说的
$.fn.myPlugin
我正在定义一个公开可用的插件方法,它可以在 fn 表示原型的任何有效 jQuery 对象上执行。然后我的问题是,通过在我的主插件内部定义一个方法,就像这样
$.fn.myPlugin.methodName
或者像这样在我的插件之外
$.something.methodName //where 'something' is in place of 'fn'
这会影响它成为公共私有/方法吗?如果每个都是不同类型的声明,有什么区别。
我想知道为什么我想知道的背景故事是我想定义一个可以调用并正常运行的主插件,但是如果最终用户想重新定义一些方法,我已经允许公开然后他们可以做到这一点。如果我不想让用户重新定义任何方法,而是提供回调以便他们可以挂钩,那么我想将该方法设为私有。
【问题讨论】:
-
如果您在
$.whatever上设置任何内容,那么它就是公开的... -
那么我会用
$.fn.myPlugin.privateMethod为myPlugin 声明一个私有方法吗? -
没有。您不能像这样在公共范围内创建私有方法。查看下面@NiettheDarkAbsol 提供的答案,了解如何操作。
-
是的,我刚刚看到它在发布最后一条评论后弹出,完美地解释了它。谢谢你们!
标签: javascript jquery jquery-plugins private-methods public-method