• 483 作用域链机制


    作用域链查找机制,关键在于如何查找上级作用域:
    1、从函数创建开始,作用域就已经指定好了;
    2、当前函数是在哪个作用域(N)下创建的,那么函数执行形成的作用域(M)的上级作用域就是N,**和函数在哪执行无关,只和创建的位置有关**。
    
    var n = 1;
    function fn() {
        var n = 2;
        function f() {
            n--;
            console.log(n);
        }
        f();
        return f;
    }
    var x = fn();
    x();
    console.log(n);
    

    var i = 0;
    function A() {
    	var i = 10;
    	// 函数X是在A的私有作用域中创建的
    	function x() {
    		console.log(i);
    	}
    	return x;
    }
    
    var y = A(); // => y=x
    y(); // 10 ,在函数x执行前,i已经赋值完成
    
    function B() {
    	var i = 20;
    	y();
    }
    B(); // 10
    
    
    // 延伸
    var i = 10;
    // 函数X是在A的私有作用域中创建的
    function x() {
        console.log(i);
    }
    
    x()  // 10
    
    
    // 相当于下面的代码
    var i
    function x() {
        console.log(i);
    }
    
    i = 10
    x() // undefined,因为在i赋值前执行函数
    
    
    // ----------------------
    
    
    // 变体
    var i
    function x() {
        console.log(i);
    }
    
    x() // undefined,因为在i赋值前执行函数
    
    i = 10
    
  • 相关阅读:
    iOS越狱后必装软件
    构建iOS交叉编译环境
    pycurl库使用详解
    iFiles浏览iphone文件
    Iphone通过ssh进行访问
    YShow性能测试平台搭建
    from my mac
    LR性能分析
    react服务端渲染(七)redux添加
    react服务端渲染(六)路由
  • 原文地址:https://www.cnblogs.com/jianjie/p/13192955.html
Copyright © 2020-2023  润新知