JS高級——作用域鏈
阿新 • • 發佈:2018-01-24
基本 post 函數 bsp func scope 多個 gpo var
基本概念
1、只要是函數就可以創造作用域
2、函數中又可以再創建函數
3、函數內部的作用域可以訪問函數外部的作用域
4、如果有多個函數嵌套,那麽就會構成一個鏈式訪問結構,這就是作用域鏈
<script> //f1--->全局 function f1() { //f2--->f1--->全局 function f2() { //f3---->f2--->f1--->全局 function f3() { } //f4--->f2--->f1---->全局function f4() { } } //f5--->f1---->全局 function f5() { } } </script>
變量的搜索原則
1、首先在所在的作用域中查找
2、如果找到了 就直接使用
3、如果沒有找到 就去上級作用域中查找
4、如果直到0級作用域鏈也就是全局作用域還沒有找到,報錯
在new Function中,在沒有指定參數的情況下,函數中的Function對象作用域指示的又是全局
<script> varx= 123; function f(){ var x = 100; //g.[[scope]] == window var g = new Function("","alert(x)"); g(); } f();//結果為:123 </script>
JS高級——作用域鏈