首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我想把我的许多jQuery代码构建成插件,是不是很糟糕呢?

如果我想把我的许多jQuery代码构建成插件,是不是很糟糕呢?
EN

Stack Overflow用户
提问于 2011-01-13 00:05:45
回答 2查看 85关注 0票数 5

由于我学会了如何用jQuery编写自己的插件,我发现每当我构建一个具有任何复杂性的页面时,我都很想用这种方式来处理我的javascript。显然,当我们谈论10行代码时,这是很愚蠢的,但是当我要用几百行javascript (或更多)构建一个页面时,这似乎是最简单的方法:

$("#myform").myPagePlugin({options}, {data});

  • Gives

  • 将数据(甚至只是选项)从我的PHP脚本传递到javascript --
  • 是DOM中的一个“主”对象来附加我的数据,而不是像全局变量
  • 这样的讨厌的东西,使我的代码在后面的
  • 中以熟悉的方式(

)“插入”我的javascript到页面上。

如果我开始这么做,我是在挖洞吗?我遗漏了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-13 00:15:29

我唯一的批评是,你正在创建一个jQuery插件,看起来你再也没有打算再使用它了。这增加了运行jQuery运行的jQuery来初始化一个插件的开销,而这个开销并不值得,因为该模块将不再被使用。

与其使用jQuery插件,不如创建一个命名空间的JavaScipt对象?例如:

代码语言:javascript
复制
var mypage = {};
mypage.controller = function(){

} //your preferred JavaScript object notation here.

或者这种名称空间的方法是你所指的“无趣”呢?如果是这样的话,我会恭敬地不同意。

票数 5
EN

Stack Overflow用户

发布于 2011-01-13 02:45:52

每个Zalavsky的散列的唯一问题是,虽然散列非常优雅地创建了一个名称空间,但它没有创建作用域。通常,您需要模块范围内的静态变量,这些变量是,而不是外部世界可用的。在这种情况下,我会写

代码语言:javascript
复制
var mypage = function() {
  var some_module_static ; 
  return {
    controller :function(){
       // use some_module_static here
    }
  };
}();

当你不需要一个单独的范围,是的,使用哈希。

每当你在编写一个概念上有用的模块时,都要编写一个插件,而不是你目前正在做的事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4675463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档