猿问

直接调用eval()的上下文环境到底在哪里?

var foo = function(a) {

    eval(a);

};

foo("return; ");

此时报错:return not in function;

也就是说执行eval()的上下文环境是调用foo函数的上下文环境(即全局)


var test = function(a) {

    var x = 0;

    eval(a);

    return x;

}

console.log(test("x++;"));

控制台输出1;

此时执行eval()的上下文环境是test函数里面,而不是在全局

这是为什么?


偶然的你
浏览 353回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答