SlideShare a Scribd company logo
1 of 12
Closure
Some example
for(var i = 0; i < 10; i ++) {
setTimeout(function() {
console.log(i);
}, 1000);
}
Example
Why?
Why?
Javascript允許你參考(refer to)定義在目前function外的變
數。
對參數複本(a copy to parameter)沒有存取權,而是對參數
本身有存取權。都是因為函式能取用建造它本身的背景
情境,才有這種可能。這種狀況稱為 closure(閉包)。
from: http://ithelp.ithome.com.tw/question/10130860
I think is...
執行時沒有variable i可以使用。
為了讓Function可以順利執行,因此提供外部變數的參考。
Closures實際上儲存的是對那些外層變
數的參考(references)。
from: http://ithelp.ithome.com.tw/question/10130860
Example
How to solve?
How to solve?
Function執行時有變數可以參照
Example:
1. Example
2. Example have debugger
An useful example
Thanks for listening

More Related Content

What's hot

JavaScript 脚本控件(二)
JavaScript 脚本控件(二)JavaScript 脚本控件(二)
JavaScript 脚本控件(二)RANK LIU
 
Jni攻略之八――操作对象的构造方法
Jni攻略之八――操作对象的构造方法Jni攻略之八――操作对象的构造方法
Jni攻略之八――操作对象的构造方法yiditushe
 
Strace debug
Strace debugStrace debug
Strace debugluo jing
 
iPhone,ios,Object-C基础入门
iPhone,ios,Object-C基础入门iPhone,ios,Object-C基础入门
iPhone,ios,Object-C基础入门Lucien Li
 
Java script closures
Java script closuresJava script closures
Java script closuresskywalker1114
 
由一个简单的程序谈起――之五(精华)
由一个简单的程序谈起――之五(精华)由一个简单的程序谈起――之五(精华)
由一个简单的程序谈起――之五(精华)yiditushe
 
JavaScript 闭包分享(一):传递参数
JavaScript 闭包分享(一):传递参数JavaScript 闭包分享(一):传递参数
JavaScript 闭包分享(一):传递参数Janlay Wu
 
冲浪 Object-c
冲浪 Object-c冲浪 Object-c
冲浪 Object-cjeff kit
 
Jni攻略之十一――启动虚拟机调用Java类
Jni攻略之十一――启动虚拟机调用Java类Jni攻略之十一――启动虚拟机调用Java类
Jni攻略之十一――启动虚拟机调用Java类yiditushe
 
深入剖析Concurrent hashmap中的同步机制(下)
深入剖析Concurrent hashmap中的同步机制(下)深入剖析Concurrent hashmap中的同步机制(下)
深入剖析Concurrent hashmap中的同步机制(下)wang hongjiang
 
Ejb工作原理学习笔记
Ejb工作原理学习笔记Ejb工作原理学习笔记
Ejb工作原理学习笔记yiditushe
 
LazyRecord: The Fast ORM for PHP
LazyRecord: The Fast ORM for PHPLazyRecord: The Fast ORM for PHP
LazyRecord: The Fast ORM for PHPLin Yo-An
 
11, exceptions
11, exceptions11, exceptions
11, exceptionsted-xu
 
4, controlling execution
4, controlling execution4, controlling execution
4, controlling executionted-xu
 
Enqueue Lock介绍.ppt
Enqueue Lock介绍.pptEnqueue Lock介绍.ppt
Enqueue Lock介绍.pptjames tong
 
Python xmlrpc-odoo
Python xmlrpc-odooPython xmlrpc-odoo
Python xmlrpc-odoorobin yang
 
JavaScript 教程
JavaScript 教程JavaScript 教程
JavaScript 教程Bobby Zhou
 

What's hot (19)

JavaScript 脚本控件(二)
JavaScript 脚本控件(二)JavaScript 脚本控件(二)
JavaScript 脚本控件(二)
 
ios分享
ios分享ios分享
ios分享
 
Jni攻略之八――操作对象的构造方法
Jni攻略之八――操作对象的构造方法Jni攻略之八――操作对象的构造方法
Jni攻略之八――操作对象的构造方法
 
Strace debug
Strace debugStrace debug
Strace debug
 
iPhone,ios,Object-C基础入门
iPhone,ios,Object-C基础入门iPhone,ios,Object-C基础入门
iPhone,ios,Object-C基础入门
 
Java script closures
Java script closuresJava script closures
Java script closures
 
MySQL aio
MySQL aioMySQL aio
MySQL aio
 
由一个简单的程序谈起――之五(精华)
由一个简单的程序谈起――之五(精华)由一个简单的程序谈起――之五(精华)
由一个简单的程序谈起――之五(精华)
 
JavaScript 闭包分享(一):传递参数
JavaScript 闭包分享(一):传递参数JavaScript 闭包分享(一):传递参数
JavaScript 闭包分享(一):传递参数
 
冲浪 Object-c
冲浪 Object-c冲浪 Object-c
冲浪 Object-c
 
Jni攻略之十一――启动虚拟机调用Java类
Jni攻略之十一――启动虚拟机调用Java类Jni攻略之十一――启动虚拟机调用Java类
Jni攻略之十一――启动虚拟机调用Java类
 
深入剖析Concurrent hashmap中的同步机制(下)
深入剖析Concurrent hashmap中的同步机制(下)深入剖析Concurrent hashmap中的同步机制(下)
深入剖析Concurrent hashmap中的同步机制(下)
 
Ejb工作原理学习笔记
Ejb工作原理学习笔记Ejb工作原理学习笔记
Ejb工作原理学习笔记
 
LazyRecord: The Fast ORM for PHP
LazyRecord: The Fast ORM for PHPLazyRecord: The Fast ORM for PHP
LazyRecord: The Fast ORM for PHP
 
11, exceptions
11, exceptions11, exceptions
11, exceptions
 
4, controlling execution
4, controlling execution4, controlling execution
4, controlling execution
 
Enqueue Lock介绍.ppt
Enqueue Lock介绍.pptEnqueue Lock介绍.ppt
Enqueue Lock介绍.ppt
 
Python xmlrpc-odoo
Python xmlrpc-odooPython xmlrpc-odoo
Python xmlrpc-odoo
 
JavaScript 教程
JavaScript 教程JavaScript 教程
JavaScript 教程
 

Viewers also liked

El crepusculo de la cultura americana
El crepusculo de la cultura americanaEl crepusculo de la cultura americana
El crepusculo de la cultura americanaAna Paola
 
Què Anuncien? (solucions)
Què Anuncien? (solucions)Què Anuncien? (solucions)
Què Anuncien? (solucions)Breil Xavier
 
Apache Apex & Apace Geode In-Memory Computation, Storage & Analysis
Apache Apex & Apace Geode In-Memory Computation, Storage & Analysis  Apache Apex & Apace Geode In-Memory Computation, Storage & Analysis
Apache Apex & Apace Geode In-Memory Computation, Storage & Analysis Apache Apex
 
La Agricultura organica
La Agricultura organicaLa Agricultura organica
La Agricultura organicaJhercy
 
Master understanding ghs for workers (eng) just ghs
Master understanding ghs for workers (eng)   just ghsMaster understanding ghs for workers (eng)   just ghs
Master understanding ghs for workers (eng) just ghsJessee McClellan
 

Viewers also liked (7)

Violencia en el noviazgo
Violencia en el noviazgoViolencia en el noviazgo
Violencia en el noviazgo
 
El crepusculo de la cultura americana
El crepusculo de la cultura americanaEl crepusculo de la cultura americana
El crepusculo de la cultura americana
 
Què Anuncien? (solucions)
Què Anuncien? (solucions)Què Anuncien? (solucions)
Què Anuncien? (solucions)
 
Apache Apex & Apace Geode In-Memory Computation, Storage & Analysis
Apache Apex & Apace Geode In-Memory Computation, Storage & Analysis  Apache Apex & Apace Geode In-Memory Computation, Storage & Analysis
Apache Apex & Apace Geode In-Memory Computation, Storage & Analysis
 
Detergent industry
Detergent industryDetergent industry
Detergent industry
 
La Agricultura organica
La Agricultura organicaLa Agricultura organica
La Agricultura organica
 
Master understanding ghs for workers (eng) just ghs
Master understanding ghs for workers (eng)   just ghsMaster understanding ghs for workers (eng)   just ghs
Master understanding ghs for workers (eng) just ghs
 

Closure