为了账号安全,请及时绑定邮箱和手机立即绑定

构造函数访问到了局部变量和全局变量,这是怎么回事呢?

var popup = '模态框';
(function(){
   var call = '替换函数运行中的this指向、传参、运行';
   Function(console.log(popup,call))();
})();

加typeof 也能访问到 返回的是string

var popup = '模态框';
(function(){
   var call = '替换函数运行中的this指向、传参、运行';
   Function(console.log(typeof popup,typeof call))();
})();

正在回答

4 回答

javascript中函数内部可以读取全局变量,因此访问到了变量popup;

变量call作用域是立即执行函数内部,因此立即执行函数内部的Function函数可以访问到

0 回复 有任何疑惑可以回复我~
#1

hi君竹 提问者

非常感谢!
2017-05-21 回复 有任何疑惑可以回复我~

Function里面的参数必须是字符串,Function(console.log(popup,call))();要改成Function('console.log(popup,call)')();才能实现老师的效果

0 回复 有任何疑惑可以回复我~

可以访问到的

0 回复 有任何疑惑可以回复我~

听老师讲,说这个构造函数Function只能访问全局变量 是访问不到父函数局部变量的;而我这个写法却访问到了     如果说真访问不到的话就只能用''把Function里面包起来Function('console.log(typeof popup,typeof call;')这有是何作用?

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

构造函数访问到了局部变量和全局变量,这是怎么回事呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信