我在eval()中定义了一个函数,并正在打印函数名称的类型。但是打印的是“未定义”,而不是“功能”。
<script>
if(1){
eval(function foo(){});
var k = typeof foo;
}
console.log(k)
</script>
我希望将“功能”作为输出,但是得到“未定义”
答案 0 :(得分:3)
eval()
函数接受一个字符串,而是给了一个函数表达式。将函数表达式作为字符串传递。
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval#Syntax
if (1) {
eval('function foo(){}');
var k = typeof foo;
}
console.log(k)
根据文档:
如果eval()的参数不是字符串,则eval()返回参数 保持不变。