WEB开发网
开发学院网页设计JavaScript 使用 jQuery(中级),第 2 部分: 创建自己的插件... 阅读

使用 jQuery(中级),第 2 部分: 创建自己的插件

 2010-01-14 00:00:00 来源:WEB开发网   
核心提示: 调优插件网上关于初级插件的大部分文章都到此为止了,这时它们会让您采用基本的插件格式并运行,使用 jQuery(中级),第 2 部分: 创建自己的插件(8),但是,这种基本架构也太 “基本” 了,第 1 部分: 使用插件创建和扩展 jQuery 函数 使用

调优插件

网上关于初级插件的大部分文章都到此为止了,这时它们会让您采用基本的插件格式并运行。但是,这种基本架构也太 “基本” 了。在编写插件时还必须考虑另一件重要的事情,给您插件增色所需要的内容远不止一个初级插件那么简单。再多增加两个步骤,您就能将初级插件转换为中级插件。

调优 #1 - 让内部方法私有化

在任何面向对象的编程语言中,您会发现创建运行重复代码的外部函数非常方便。在我创建的 NumberFormatter 插件中,有一个这种代码的样例 —— 该代码决定向函数传递哪个地理位置,以及要使用哪些字符作为小数点和分组符。format() 方法和 parse() 方法中都需要该代码,任何一个初级程序员都会告诉您这属于它自己的方法。但是,这会出现一个问题,因为您处理的是 jQuery 插件:如果您使用 JavaScript 中的定义将它作为自己的函数,那么任何人都可以为任何目的使用脚本调用该方法。这不是该函数的目的,我更倾向于不调用它,因为它仅用于内部工作。那么,让我们看看如何将该函数私有化。

这种私有方法问题的解决方案称为 Closure,它可以有效地从外部调用关闭整个插件代码,附加到 jQuery 对象的除外(那些是公共方法)。通过这种设计,您可以将任何代码放入插件中,不用担心被外部脚本调用。通过将插件方法附加到 jQuery 对象,您可以有效地将它们变为公共方法,而让其他的函数/类私有化。清单 6 展示了实现该操作所需的代码。


清单 6. 私有化函数

// this code creates the Closure structure 
(function(jQuery) { 
 
  // this function is "private" 
  function formatCodes(locale) { 
   // plug-in specific code here 
  }; // don't forget the semi-colon 
 
  // this method is "public" because it's attached to the jQuery object 
  jQuery.fn.format = function(options) { 
 
   var options = jQuery.extend( { 
 
     format: "#,###.00", 
     locale: "us" 
 
   },options); 
 
   return this.each(function(){ 
     var text = new String(jQuery(this).text()); 
     if (jQuery(this).is(":input")) 
       text = new String(jQuery(this).val()); 
 
     // you can call the private function like any other function 
     var formatData = formatCodes(options.locale.toLowerCase()); 
 
     // plug-in-specific code here 
   }); 
   }; // don't forget the semi-colon to close the method 
 
// this code ends the Closure structure 
})(jQuery);

编缉推荐阅读以下文章

  • 使用 jQuery(中级),第 1 部分: 使用插件创建和扩展 jQuery 函数
  • 使用 jQuery,第 3 部分: 用 jQuery 和 Ajax 构建富 Internet 应用程序
  • 使用 jQuery,第 2 部分: 构建未来的 Web 应用程序
  • 使用 jQuery,第 1 部分: 将桌面应用程序引入浏览器

上一页  3 4 5 6 7 8 9 10  下一页

Tags:使用 jQuery 中级

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接