eval()内部的函数显示为未定义

时间:2019-01-20 07:38:41

标签: javascript

我在eval()中定义了一个函数,并正在打印函数名称的类型。但是打印的是“未定义”,而不是“功能”。

<script>
if(1){
eval(function foo(){});
var k = typeof foo;
}
console.log(k)
</script>

我希望将“功能”作为输出,但是得到“未定义”

1 个答案:

答案 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()返回参数   保持不变。