js的做用域鏈

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>

<script type="text/javascript">
// 做用域鏈
// 每個函數都有一個做用域, 若是一個函數內部又嵌套鏈另一個函數,
// 嵌套的函數也會又一個做用域,這樣,嵌套函數就能訪問到外部函數中的變量,
// 以及全局做用域中的變量,此時就造成了一條做用域鏈
// (包括:自身的做用域, 以及外部函數的做用域, 以及全局做用域)javascript

// 全局做用域: script標籤包裹的內容就是一個做用域
var abc = 123;html

// fn 中能訪問到的變量由那些:
// 1 自身定義的變量
// 2 上一級做用域中的變量(全局做用域)java

// foo 中能訪問到的變量由那些:
// 1 自身定義的變量
// 2 函數fn中的變量
// 3 全局做用域中的變量
function fn() {
var a = 456;函數

function foo() {
var num = 123;htm

// f的做用域鏈: f做用域 -> foo做用域 -> fn做用域 -> 全局做用域
function f() {}
}
foo();
// console.log(num);
}
</script>
</body>
</html>ip

相關文章
相關標籤/搜索