javascript全局变量封装模块实现代码


Posted in Javascript onNovember 28, 2012

下面的代码是我的测试代码,注释很重要:

/*global window,jQuery,validate_email,masterUI,$,rest*/ 
/** Enable ECMAScript "strict" operation for this function. See more: 
* http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/ 
* http://stackoverflow.com/questions/5020479/what-advantages-does-using-functionwindow-document-undefined-windo 
* Q1: Why are window and document being fed instead of just being accessed normally? 
* A1: Generally to fasten the identifier resolution process, having them as local variables can help (although IMO the performance improvements may be negligible). 
* A2: Passing the global object is also a widely used technique on non-browser environments, where you don't have a window identifier at the global scope, e.g.: 
* (function (global) { 
* //.. 
* })(this); // this on the global execution context is the global object itself 
* A3: Passing window and document allows the script to be more efficiently minified 
* 
* Q2: Why the heck is undefined being passed in? 
* A1: This is made because the undefined global property in ECMAScript 3, is mutable, meaning that someone could change its value affecting your code, for example: 
* undefined = true; // mutable 
* (function (undefined) { 
* alert(typeof undefined); // "undefined", the local identifier 
* })(); // <-- no value passed, undefined by default 
* If you look carefully undefined is actually not being passed (there's no argument on the function call), 
* that's one of the reliable ways to get the undefined value, without using the property window.undefined. 
* 
*/ 
(function(window, document, undefined) { 
"use strict"; 
window.test = { 
init: function () { 
"use strict"; 
alert("ok"); 
} 
}; 
})(window, document);// no undefined parameter here to avoid using mutable window.undefined changed by other guy

1.说明,参考了一篇文章和stackoverflow上的一个帖子
2.(function(){})() 这种代码写在独立的js文件里,当js文件被html加载的时候,该函数就会执行。实际上创建了windows.text对象。
以后html代码就可用test.init的形式调用方法。
测试html部分代码如下:
[plain] view plaincopyprint? 
<head> 
<title>AppEngine SDK</title> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<script type="text/javascript" src="../../master/script/third_party/jquery-1.8.0.min.js"></script> 
<script type="text/javascript" src="../../master/plugin/jquery-validation-1.9.0/jquery.validate.js"></script> 
<script type="text/javascript" src="../../master/plugin/artDialog4.1.6/jquery.artDialog.js"></script> 
<script type="text/javascript" src="../../master/script/app/test.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
test.init(); 
}) 
</script> 
</head>

3.Jslint会报两个问题,一是关于undefined的,没找到什么好方法,任它抱怨吧。另一格式最后调用方式要改成:
[javascript] view plaincopyprint?}(window, document)); }(window, document));

无所谓了,就任由它吧。只要功能正常就行。
Javascript 相关文章推荐
apycom出品的jQuery精美菜单破解方法
Feb 18 Javascript
Javascript中定义方法的另类写法(批量定义js对象的方法)
Feb 25 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
Jun 24 Javascript
详解JavaScript函数对象
Nov 15 Javascript
JQuery点击行tr实现checkBox选中的简单实例
May 26 Javascript
JavaScript 拖拽实例代码
Sep 21 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
Jan 05 Javascript
JavaScript中错误正确处理方式小结你用对了吗
Oct 10 Javascript
深入了解JavaScript 的 WebAssembly
Jun 15 Javascript
JavaScript 反射和属性赋值实例解析
Oct 28 Javascript
微信小程序批量上传图片到七牛(推荐)
Dec 19 Javascript
微信小程序开发中var that =this的用法详解
Jan 18 Javascript
Javascript Request获取请求参数如何实现
Nov 28 #Javascript
js移除事件 js绑定事件实例应用
Nov 28 #Javascript
js arguments对象应用介绍
Nov 28 #Javascript
web基于浏览器的本地存储方法应用
Nov 27 #Javascript
extjs 04_grid 单击事件新发现
Nov 27 #Javascript
javascript 正则表达式相关应介绍
Nov 27 #Javascript
javascript 二进制运算技巧解析
Nov 27 #Javascript
You might like
php 定界符格式引起的错误
2011/05/24 PHP
PHP static局部静态变量和全局静态变量总结
2014/03/02 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
2016/11/22 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
学习jquery必备 api中英文对照的chm手册 下载
2007/05/03 Javascript
javascript 简练的几个函数
2009/08/29 Javascript
JavaScript控制Session操作方法
2013/01/17 Javascript
js的匿名函数使用介绍
2013/12/11 Javascript
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
原生js实现模拟滚动条
2015/06/15 Javascript
javascript日期操作详解(脚本之家整理)
2015/09/05 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
简单实现Bootstrap标签页
2020/08/09 Javascript
js css3实现图片拖拽效果
2017/03/04 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
2018/01/02 jQuery
JS实现简单的星期格式转换功能示例
2018/07/23 Javascript
写gulp遇到的ES6问题详解
2018/12/03 Javascript
ES6基础之默认参数值
2019/02/21 Javascript
JS this关键字在ajax中使用出现问题解决方案
2020/07/17 Javascript
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
Python ZipFile模块详解
2013/11/01 Python
pygame播放音乐的方法
2015/05/19 Python
Python中异常重试的解决方案详解
2017/05/05 Python
基于python的图片修复程序(实现水印去除)
2018/06/04 Python
Python 3.x基于Xml数据的Http请求方法
2018/12/28 Python
python实现按行分割文件
2019/07/22 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
python自动循环定时开关机(非重启)测试
2019/08/26 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
HTML5 input新增type属性color颜色拾取器的实例代码
2018/08/27 HTML / CSS
2015年社区宣传工作总结
2015/05/20 职场文书
Python import模块的缓存问题解决方案
2021/06/02 Python
使用Redis做预定库存缓存功能
2022/04/02 Redis
mysql数据库实现设置字段长度
2022/06/10 MySQL