[译]Javascript中的闭包(closures)
生活随笔
收集整理的這篇文章主要介紹了
[译]Javascript中的闭包(closures)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文翻譯youtube上的up主kudvenkat的javascript tutorial播放單
源地址在此:
https://www.youtube.com/watch?v=PMsVM7rjupU&list=PL6n9fhu94yhUA99nOsJkKXBqokT3MBK0b
?
本次視頻中我們將通過例子來理解Javascript中的閉包(closure)
?
什么是閉包(closure)?
?
一個閉包就是一個在函數內部的一個函數,而且該函數能夠使用其本身的變量和全局變量.內部函數不止能用其外部包裹的函數的變量,同時也可以使用外部函數的參數.一般來說就是通過在一個函數內部中添加一個新的函數來制造閉包的
?
Javascript閉包例子
function addNumbers(firstNumber, secondNumber) {var returnValue = "Result is : ";// This inner function has access to the outer function's variables & parametersfunction add() {return returnValue + (firstNumber + secondNumber);}return add(); }var result = addNumbers(10, 20); document.write(result);Output : Result is : 30
?
以下的代碼返回內部函數表達式
function addNumbers(firstNumber, secondNumber) {var returnValue = "Result is : ";function add() {return returnValue + (firstNumber + secondNumber);}// We removed the parentheses. This will return the inner function expression without executing it.//我們移出了add后面的小闊號,這樣就會返回一個內部函數表達式了return add; }// addFunc will contain add() function (inner function) expression. // addFunc將包含一個add()函數表達式
var addFunc = addNumbers(10, 20); // call the addFunc() function and store the return value in result variable
//呼出addFunc()函數,并且把返回的值存儲在result這個變量里
var result = addFunc();document.write(result);
返回并且運行內部函數
function addNumbers(firstNumber, secondNumber) {var returnValue = "Result is : ";function add() {return returnValue + (firstNumber + secondNumber);}// We removed the parentheses. This will return the inner function add() expression without executing it.//我們刪除掉了add后面的小括號,這將返回內部函數add()表達式return add; }// This returns add() function (inner function) definition and executes it. Notice the additonal parentheses. //這一段會返回add()函數的定義并且運行它,注意到(10,20)后面的小括號了嗎
var result = addNumbers(10, 20)();document.write(result);
?
轉載于:https://www.cnblogs.com/otakuhan/p/7776963.html
總結
以上是生活随笔為你收集整理的[译]Javascript中的闭包(closures)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#halcon点拟合圆形函数
- 下一篇: Java安装包(JDK)安装和运行环境配