Submit Search
Upload
JavaScript 闭包分享(一):传递参数
•
Download as PPTX, PDF
•
4 likes
•
1,172 views
Janlay Wu
Follow
本期介绍了JS中闭包的概念、参数传递和测试变量可用性的问题。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 15
Download now
Recommended
5, initialization & cleanup
5, initialization & cleanup
ted-xu
Node way
Node way
Ethan Zhang
Jasmine2
Jasmine2
tb-vertical-guide
基于原型的JavaScript面向对象编程
基于原型的JavaScript面向对象编程
zhangdaiping
JS2
JS2
Jiang Wu
Ecmascript
Ecmascript
jay li
JAVA内存泄漏及诊断
JAVA内存泄漏及诊断
ivannotes
Node.js开发体验
Node.js开发体验
QLeelulu
Recommended
5, initialization & cleanup
5, initialization & cleanup
ted-xu
Node way
Node way
Ethan Zhang
Jasmine2
Jasmine2
tb-vertical-guide
基于原型的JavaScript面向对象编程
基于原型的JavaScript面向对象编程
zhangdaiping
JS2
JS2
Jiang Wu
Ecmascript
Ecmascript
jay li
JAVA内存泄漏及诊断
JAVA内存泄漏及诊断
ivannotes
Node.js开发体验
Node.js开发体验
QLeelulu
深入淺出 Web 容器 - Tomcat 原始碼分析
深入淺出 Web 容器 - Tomcat 原始碼分析
Justin Lin
Python xmlrpc-odoo
Python xmlrpc-odoo
robin yang
C python 原始碼解析 投影片
C python 原始碼解析 投影片
kao kuo-tung
PHPUnit + Xdebug 单元测试技术
PHPUnit + Xdebug 单元测试技术
hoopchina
180518 ntut js and node
180518 ntut js and node
Peter Yi
Jni攻略之八――操作对象的构造方法
Jni攻略之八――操作对象的构造方法
yiditushe
Java script 编程 第2课 条件与循环
Java script 编程 第2课 条件与循环
willchrisup
Php for fe
Php for fe
jay li
jQuery源码学习
jQuery源码学习
fangdeng
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
Justin Lin
改善程序设计技术的50个有效做法
改善程序设计技术的50个有效做法
crasysatan
JavaScript 教程
JavaScript 教程
Bobby Zhou
由Hash Set谈重用
由Hash Set谈重用
yiditushe
潜力无限的编程语言Javascript
潜力无限的编程语言Javascript
jay li
Closure
Closure
Ji-Kang Huang
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
Justin Lin
Php & Mysql
Php & Mysql
chuyenyin
Asp.net mvc 培训
Asp.net mvc 培训
lotusprince
Java多线程设计模式
Java多线程设计模式
Tony Deng
异步编程与浏览器执行模型
异步编程与浏览器执行模型
keelii
支付宝浏览器与操作系统统计报告
支付宝浏览器与操作系统统计报告
Janlay Wu
Air
Air
Natalia Fernández
More Related Content
What's hot
深入淺出 Web 容器 - Tomcat 原始碼分析
深入淺出 Web 容器 - Tomcat 原始碼分析
Justin Lin
Python xmlrpc-odoo
Python xmlrpc-odoo
robin yang
C python 原始碼解析 投影片
C python 原始碼解析 投影片
kao kuo-tung
PHPUnit + Xdebug 单元测试技术
PHPUnit + Xdebug 单元测试技术
hoopchina
180518 ntut js and node
180518 ntut js and node
Peter Yi
Jni攻略之八――操作对象的构造方法
Jni攻略之八――操作对象的构造方法
yiditushe
Java script 编程 第2课 条件与循环
Java script 编程 第2课 条件与循环
willchrisup
Php for fe
Php for fe
jay li
jQuery源码学习
jQuery源码学习
fangdeng
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
Justin Lin
改善程序设计技术的50个有效做法
改善程序设计技术的50个有效做法
crasysatan
JavaScript 教程
JavaScript 教程
Bobby Zhou
由Hash Set谈重用
由Hash Set谈重用
yiditushe
潜力无限的编程语言Javascript
潜力无限的编程语言Javascript
jay li
Closure
Closure
Ji-Kang Huang
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
Justin Lin
Php & Mysql
Php & Mysql
chuyenyin
Asp.net mvc 培训
Asp.net mvc 培训
lotusprince
Java多线程设计模式
Java多线程设计模式
Tony Deng
异步编程与浏览器执行模型
异步编程与浏览器执行模型
keelii
What's hot
(20)
深入淺出 Web 容器 - Tomcat 原始碼分析
深入淺出 Web 容器 - Tomcat 原始碼分析
Python xmlrpc-odoo
Python xmlrpc-odoo
C python 原始碼解析 投影片
C python 原始碼解析 投影片
PHPUnit + Xdebug 单元测试技术
PHPUnit + Xdebug 单元测试技术
180518 ntut js and node
180518 ntut js and node
Jni攻略之八――操作对象的构造方法
Jni攻略之八――操作对象的构造方法
Java script 编程 第2课 条件与循环
Java script 编程 第2课 条件与循环
Php for fe
Php for fe
jQuery源码学习
jQuery源码学习
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
改善程序设计技术的50个有效做法
改善程序设计技术的50个有效做法
JavaScript 教程
JavaScript 教程
由Hash Set谈重用
由Hash Set谈重用
潜力无限的编程语言Javascript
潜力无限的编程语言Javascript
Closure
Closure
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
Php & Mysql
Php & Mysql
Asp.net mvc 培训
Asp.net mvc 培训
Java多线程设计模式
Java多线程设计模式
异步编程与浏览器执行模型
异步编程与浏览器执行模型
Viewers also liked
支付宝浏览器与操作系统统计报告
支付宝浏览器与操作系统统计报告
Janlay Wu
Air
Air
Natalia Fernández
Alipay Tracker
Alipay Tracker
Janlay Wu
Linked In Presentation
Linked In Presentation
onesharpdude
Halloween
Halloween
Natalia Fernández
AQUA TAP
AQUA TAP
Natalia Fernández
англия
англия
Love_is_tears
Англия
Англия
Love_is_tears
Life processes: Animals
Life processes: Animals
Natalia Fernández
Life processes of living things
Life processes of living things
Natalia Fernández
Revision
Revision
Natalia Fernández
Directorio general de ministros extraordinarios de la sagrada comunión
Directorio general de ministros extraordinarios de la sagrada comunión
Jorge Garcés
JavaScript Loop: Optimization of Weak Typing
JavaScript Loop: Optimization of Weak Typing
Janlay Wu
Intro Landscapes
Intro Landscapes
Natalia Fernández
Realidad del presupuesto ucla 2016
Realidad del presupuesto ucla 2016
Álvaro Muñoz
Viewers also liked
(15)
支付宝浏览器与操作系统统计报告
支付宝浏览器与操作系统统计报告
Air
Air
Alipay Tracker
Alipay Tracker
Linked In Presentation
Linked In Presentation
Halloween
Halloween
AQUA TAP
AQUA TAP
англия
англия
Англия
Англия
Life processes: Animals
Life processes: Animals
Life processes of living things
Life processes of living things
Revision
Revision
Directorio general de ministros extraordinarios de la sagrada comunión
Directorio general de ministros extraordinarios de la sagrada comunión
JavaScript Loop: Optimization of Weak Typing
JavaScript Loop: Optimization of Weak Typing
Intro Landscapes
Intro Landscapes
Realidad del presupuesto ucla 2016
Realidad del presupuesto ucla 2016
Similar to JavaScript 闭包分享(一):传递参数
JavaScript Advanced Skill
JavaScript Advanced Skill
firestoke
學好 node.js 不可不知的事
學好 node.js 不可不知的事
Ben Lue
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Justin Lin
Javascript autoload
Javascript autoload
jay li
Ecma script edition5-小试
Ecma script edition5-小试
lydiafly
Js培训
Js培训
yiditushe
J2ee面试知识
J2ee面试知识
yiditushe
《Java程序设计》期末考试试题 (六)
《Java程序设计》期末考试试题 (六)
jane2006
Mybatis学习培训
Mybatis学习培训
flynofry
Kissy component model
Kissy component model
yiming he
所谓闭包
所谓闭包
youzitang
107个常用javascript语句 oss 计算技术 - ossez info of tech
107个常用javascript语句 oss 计算技术 - ossez info of tech
YUCHENG HU
前端测试
前端测试
frontwindysky
前端测试
前端测试
Zheng Biao
Android resource-management
Android resource-management
Lucas Xu
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming Skills
Ho Kim
千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7
javatwo2011
Sun java
Sun java
softwaredesigner
Spring 2.x 中文
Spring 2.x 中文
Guo Albert
前端开发之Js
前端开发之Js
fangdeng
Similar to JavaScript 闭包分享(一):传递参数
(20)
JavaScript Advanced Skill
JavaScript Advanced Skill
學好 node.js 不可不知的事
學好 node.js 不可不知的事
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Javascript autoload
Javascript autoload
Ecma script edition5-小试
Ecma script edition5-小试
Js培训
Js培训
J2ee面试知识
J2ee面试知识
《Java程序设计》期末考试试题 (六)
《Java程序设计》期末考试试题 (六)
Mybatis学习培训
Mybatis学习培训
Kissy component model
Kissy component model
所谓闭包
所谓闭包
107个常用javascript语句 oss 计算技术 - ossez info of tech
107个常用javascript语句 oss 计算技术 - ossez info of tech
前端测试
前端测试
前端测试
前端测试
Android resource-management
Android resource-management
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming Skills
千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7
Sun java
Sun java
Spring 2.x 中文
Spring 2.x 中文
前端开发之Js
前端开发之Js
JavaScript 闭包分享(一):传递参数
1.
JavaScript 闭包分享(一) 闭包传递参数
taibo@alipay.com
2.
闭包的结构
3.
常见结构:独立语句 (function() {
// your code... })();
4.
常见结构:表达式(缓存示例) var get
= function() { var cache = {}; return function(selector) { if(cache.hasOwnProperty(selector)) return selector.cache; return cache.selector = D.query(selector); }; }();
5.
闭包的优点 天然的安全性 var
=> private 逻辑相对独立 函数式编程的优势 延迟计算 概念简单易懂 变化多端
6.
闭包的参数传递
7.
回顾: (function() {
// your code... })(); (function($) { $(function() { // code on DOMReady… }); })(jQuery);
8.
传递常见引用:示例 (function(w, d)
{ // w.setTimeout(… // d.getElementById(… })(window, document); (function(win, doc) { // win.setTimeout(… // doc.getElementById(… })(window, document);
9.
传递常见引用:优点 特定范围内的作用域 快捷引用
减少压缩后字节数 更好的代码混淆
10.
传递常见引用:缺点 长时间持有对window的引用,导致特定场景下的跨域冲突
11.
传递“无引用”:示例 (function(undefined) {
// if(typeofwindow.Tracker === undefined) { // … })();
12.
传递“无引用”:优点 安全地使用undefined 快捷引用
减少压缩后字节数 更好的代码混淆
13.
传递“无引用”:缺点 暂时没有,推荐使用
14.
比较:测试变量/对象是否可用 if(myVar) if(window.myVar)
if(!!myVar) if(typeofmyVar !== ‘undefined’) if(typeofmyVar !== undefined) if(myObj.myVar) if(myObj.hasOwnProperty(‘myVar’) if(typeofmyObj.myVar !== undefined)
15.
thnaksQ & A
Download now