【问题标题】:Understanding the availability of JQuery Plugin Functions了解 JQuery 插件函数的可用性
【发布时间】:2014-02-27 02:32:54
【问题描述】:

我正在编写一个 JQuery 插件,到目前为止一切都很好......虽然我有一个问题,但我似乎也找不到答案。

首先,让我们说这是插件骨架

(function ($) {

 var outterFunction = function () {};

     $.fn.cssLive = function (getTargets, getStyles) {
         /// Some Stuff
         var innerFunction = function () {};
     }

}(jQuery));

我的问题如下...

  1. innerFunctionoutterFunction 是否在全球范围内可用?
  2. 如果我不需要在全球范围内使用 outterFunction,是否应该在 $.fn.cssLive 中声明它?
  3. 最后,如果outterFunction 要求开发人员使用我的插件设置一个变量,我会扩展$.fn.cssLive 吗?如果是,怎么做?

到目前为止,我的插件相当大,似乎我所有的功能都在outterFunction 的范围内,结果我只使用$.fn.cssLive 来获取两个参数。这是标准还是大多数插件都具有主要插件功能内的所有功能。

如果需要,我会在这里回答任何问题或来回回访。

提前谢谢你!

【问题讨论】:

  • 1.这些方法是否在全局范围内可用 Ans: 不,它们不会是因为它们是在本地范围内声明的
  • 3.你能解释一下我会扩展 $.fn.cssLive 是什么意思吗?
  • @ArunPJohny 我的意思是使用类似var opts = $.extend( {}, $.fn.cssLive.fontOptions, options );
  • 在这种情况下,您需要将 opts 对象或所需属性作为参数传递给 outterFunction
  • @ArunPJohny 你能解释一下你的评论吗?

标签: javascript jquery plugins jquery-plugins


【解决方案1】:

1) 没有 2)这取决于它的作用,但可能会引入更严格的范围 3)不,它不会扩展它,但我不确定这是否是你要问的

【讨论】:

  • 好的,关于问题 3,除了使用 myObj = { key : "value" } 之外,用户是否有一种优雅的方式来声明我的插件需要的对象
  • 创建 javascript 对象的方法有很多,我真的不会说一种方法比另一种更优雅。 EC5 方法可能更直观,但通常归结为偏好。这是我用于 5 的参考:kangax.github.io/es5-compat-table
猜你喜欢
  • 2011-01-28
  • 1970-01-01
  • 1970-01-01
  • 2012-10-24
  • 2018-05-24
  • 1970-01-01
  • 2011-05-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多