Javascript通过匿名包装器创建命名空间
来源:互联网 发布:js去掉最后一个逗号 编辑:程序博客网 时间:2024/06/05 19:25
只有一个全局作用域导致的常见错误是命名冲突。在 JavaScript中,这可以通过 匿名包装器 轻松解决。
(function() {
// 函数创建一个命名空间
window.foo = function() {
// 对外公开的函数,创建了闭包
};
})(); // 立即执行此匿名函数
匿名函数被认为是 表达式;因此为了可调用性,它们首先会被执行。
句法说明:
( // 小括号内的函数首先被执行
function() {}
) // 并且返回函数对象
(function() {
// 函数创建一个命名空间
window.foo = function() {
// 对外公开的函数,创建了闭包
};
})(); // 立即执行此匿名函数
匿名函数被认为是 表达式;因此为了可调用性,它们首先会被执行。
句法说明:
( // 小括号内的函数首先被执行
function() {}
) // 并且返回函数对象
() // 调用上面的执行结果,也就是函数对象
其实就是我们通常说的自执行匿名函数,以下是自执行匿名函数的一个例子。
for(var i = 0; i < 10; i++) {
(function(e) {
setTimeout(function() {
console.log(e);
}, 1000);
})(i);
}
这个例子中,外部的匿名函数会立即执行。防止以下闭包的问题。
for(var i = 0; i < 10; i++) {
setTimeout(function() {
console.log(i);
}, 1000);
}
上面的代码不会输出数字 0 到 9,而是会输出数字 10 十次。
当 console.log 被调用的时候,匿名函数保持对外部变量 i 的引用,此时 for循环已经结束, i 的值被修改成了 10.
原文:http://blog.csdn.net/atec2000/article/details/7630023
阅读全文
0 0
- Javascript通过匿名包装器创建命名空间
- Javascript通过匿名包装器创建命名空间
- JavaScript 匿名函数、模块模式、闭包、命名空间、创建构造器(类)、继承
- JavaScript 匿名函数、模块模式、闭包、命名空间、创建构造器(类)、继承
- JavaScript 匿名函数、模块模式、闭包、命名空间、创建构造器(类)、继承
- JavaScript 匿名函数、模块模式、闭包、命名空间、创建构造器(类)、继承
- C++匿名命名空间
- c++ 匿名命名空间
- C++匿名命名空间
- C++匿名命名空间
- C++匿名命名空间
- C++匿名命名空间
- C++匿名命名空间
- javascript命名空间的创建方式
- 命名空间及匿名命名空间
- JavaScript中创建命名空间的几种写法(推荐)
- 在JavaScript中创建命名空间的几种写法
- 在JavaScript中创建命名空间的几种写法
- Linux功耗管理(18)_Linux cpuidle framework(1)_概述和软件架构
- 将本地代码上传到github中
- redis 集群-新增加节点并数据迁移
- 19个Python爬虫项目让你一次吃到撑
- Flask教程1—Flask的简介、安装及第一个程序
- Javascript通过匿名包装器创建命名空间
- 死锁产生的原因和必要条件
- HDFS单机版安装
- 同行显示div
- 使用ULINK仿真器下载时提示“Invalid ROM Table”错误
- java动态代理(JDK和cglib)
- 杭电ACM2015
- 设计模式の策略模式
- Android OnInterceptTouchEvent、dispatchTouchEvent、onTouchEvent时序逻辑分析结论