为什么var a=new Function(console.log(1))自动执行?
Function的构造函数接收多个字符串参数,当你new Function(console.log(111))时,会首先执行console.log(111),返回undefined。然后把undefined传给Function,返回一个函数实例。
//类似于
function a(m){
alert(m);
}
function b(n){
alert(n)
}
b(a(123));
兄弟Function是函数的内置对象,你new实例话了这个对象,浏览器引擎在解析时就会拥有它的属性和方法,你传入的参数是console(1)所以会给你返回1.这个可不是构造函数自动执行。
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
这句代码中,在
Function()
传入的参数是console.log(1)
执行后的返回值,并不是构造函数自动执行。