zoukankan      html  css  js  c++  java
  • 命名函数、eval创建局部变量

    1、命名函数

    1 var f = function double(){return x *2;}
    2 该语句将函数绑定到变量f,而不是变量double
    3 匿名的函数表达式:
    4 var f = function(x) {return x*2;}

    2、关于eval创建局部变量

    1 var y = "global";
    2 function test(x){
    3     if (x) {
    4         eval("var y = 'local';");
    5     };
    6     return y;
    7 }
    8 test(true); // "local"
    9 test(false); // "global"
    1 var y = "global";
    2 function test(src){
    3     eval(src);
    4     return y;
    5 }
    6 test("var y = 'local';"); // "local"
    7 test("var z = 'local';"); // "global"
    1 var y = "global";
    2 function test(src){
    3     (function(){eval(src);})();    
    4     return y;
    5 }
    6 test("var y = 'local';"); // "global"
    7 test("var z = 'local';"); // "global"

    eval函数具有访问调用它那时的整个函数的作用域,大多数函数只能访问定义它们所在的作用域,而不能访问除此之外的作用域

    1 var x = "global";
    2 function test(){
    3     var x = "local";  
    4     return eval("x");
    5 }
    6 test(); // "local"

    绑定eval函数到另一个变量名,通过该变量名调用函数会使代码失去对所有局部作用域的访问能力

    1 var x = "global";
    2 function test(){
    3     var x = "local";
    4     var f = eval;  
    5     return f("x");
    6 }
    7 test(); // "global"
  • 相关阅读:
    HDU 1525
    kmp模板
    hdu 4616 Game(树形DP)
    hdu 4619 Warm up 2(并查集活用)
    hdu 4614 Vases and Flowers(线段树加二分查找)
    Codeforces 400D Dima and Bacteria(并查集最短路)
    poj 2823 Sliding Window (单调队列)
    hdu 2196 Computer(树形dp)
    hdu 4604 Deque
    最短路径
  • 原文地址:https://www.cnblogs.com/zhanghuiyun/p/5872000.html
Copyright © 2011-2022 走看看