容易犯錯的做用域

遇到不少做用域上的問題,容易犯錯,犯錯並不可怕,可怕的是明知犯錯,還不去彌補。

做用域定義了變量或者函數可有權訪問的範圍。前端

外部環境不能訪問內部環境的任何變量與函數。函數

做用域鏈

在 JavaScript 中,每一個函數都有着本身的做用域,在每次調用一個函數的時候 ,就會進入一個函數內的做用域,而當函數執行返回之後,就返回調用前的做用域。spa

當代碼在一個做用域內執行時,就會根據其上下文建立一個做用域鏈,該做用域鏈的用途就是控制當前做用域對於內全部的變量與函數的有序訪問。做用域鏈的最前端,始終都是當前執行代碼所在的做用域的變量對象。code

權威指南的講明

JavaScript中的函數運行在它們被定義的做用域裏,而不是它們被執行的做用域裏對象

var name = 'jim';
function showName(){
    console.log(name);
}
function show(){
    var name = 'tom';
    showName();
}
show();
// 輸出結果爲jim

對上式變式blog

var name = 'jim';
function show(){
    var name = 'tom';
    function showName(){
    console.log(name);
}
    showName();
}
show();
// 輸出結果爲tom
相關文章
相關標籤/搜索