基本概念函數
一、只要是函數就能夠創造做用域spa
二、函數中又能夠再建立函數code
三、函數內部的做用域能夠訪問函數外部的做用域對象
四、若是有多個函數嵌套,那麼就會構成一個鏈式訪問結構,這就是做用域鏈blog
<script> //f1--->全局 function f1() { //f2--->f1--->全局 function f2() { //f3---->f2--->f1--->全局 function f3() { } //f4--->f2--->f1---->全局 function f4() { } } //f5--->f1---->全局 function f5() { } } </script>
變量的搜索原則ip
一、首先在所在的做用域中查找作用域
二、若是找到了 就直接使用io
三、若是沒有找到 就去上級做用域中查找function
四、若是直到0級做用域鏈也就是全局做用域尚未找到,報錯class
在new Function中,在沒有指定參數的狀況下,函數中的Function對象做用域指示的又是全局
<script> var x= 123; function f(){ var x = 100; //g.[[scope]] == window var g = new Function("","alert(x)"); g(); } f();//結果爲:123 </script>