javascript中Function对象作用域的问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

javascript中Function对象作用域的问题

2016-03-10 17:00:51 2162 1

javascript中用Function对象创建的函数似乎作用域很奇怪,不在当前的上下文中,比如如下代码

function test () {

alert('test');

}

var func = new Function(null, 'return test()');
func();
直接运行的话就会报test函数没有定义的错误,这显然不是我要的结果,怎样让它的作用域与当前一致呢

取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 18:57:57

    Function()构造函数是在每次被调用的时候,动态的创建一个新的函数对象(动态变异)。通过new Function定义的函数的词法作用域链只有顶层作用域,不包含闭包作用域(详见链接2)。

    建议不使用Function,而使用function。修改后Demo -> http://jsfiddle.net/fJgN4/点击预览。

    function test () {
    
        alert('test');
    
    }
    
    var func = function(){}
        return test();
    ;
    
    func();
    或者:->http://jsfiddle.net/N4dhQ/点击预览

    全选复制放进笔记test = ["alert('test');"];

    func= Function.apply(null, test );

    func();

    0 0
相关问答

1

回答

问一个Javascript的作用域问题

2016-03-13 09:42:08 1556浏览量 回答数 1

1

回答

js 怎样去除数组重复项

2016-06-01 16:51:11 1512浏览量 回答数 1

1

回答

JS 中怎么把定义的对象的一个属性作为一个数组

2016-06-02 09:17:49 2527浏览量 回答数 1

1

回答

js中数组怎么变成json数据啊

2016-06-02 10:03:42 1468浏览量 回答数 1

1

回答

用js怎么把一个13位数的每一位放到数组里!

2016-06-02 13:28:30 3216浏览量 回答数 1

1

回答

js如何判断输入框输入的数组是否和div里的appendChild重复

2016-06-02 13:30:52 2606浏览量 回答数 1

1

回答

js如何将获取的n个文本添加到指定数组中?

2016-06-12 16:42:24 1813浏览量 回答数 1

1

回答

在Mysql(或者在js中)构建完整查询结果数组

2016-07-07 14:37:23 1886浏览量 回答数 1

1

回答

javascript的作用域问题

2016-07-29 11:13:10 1702浏览量 回答数 1

4

回答

请教一个关于javascript的作用域问题

2014-07-24 13:25:00 6117浏览量 回答数 4
+关注
文章
问答
问答排行榜
最热
最新
相关电子书
更多
Javascript中的对象
立即下载
Javascript中的函数
立即下载
Javascript异步编程
立即下载