javascript中的函数构造函数

时间:2013-12-30 19:15:45

标签: javascript

HTML:

<textarea id="ta" cols="20" rows="20">alert("Hello World");</textarea>
<input type="button" value=" Exec " onclick="exec()" />

JS:

function exec()
{
    var code=document.getElementById('ta').value;
    var fn=new Function(code);
    fn();
}

http://jsfiddle.net/3Z5qP/6/

任何人都可以告诉我代码背后的逻辑如何显示"Hello World"而我正在查看MDN

上面的代码是否使用new alert function

为我创建new Function constructor

2 个答案:

答案 0 :(得分:4)

Function(string)返回一个以string为主体的函数。该代码抓取文本区域中的文本,将其插入到函数体中,然后运行它。在这种情况下,代码是单个命令alert("Hello World");

您可以在更简单的示例中尝试:

var t = new Function('alert("hello, world")');
t(); // Alerts "hello, world"

答案 1 :(得分:1)

首先,您需要知道JavaScript是一种解释型语言。这意味着代码将在运行中进行评估和执行。

另一件需要知道的事情是,JavaScript中的所有内容都是一个对象,甚至是函数。所以发生的事情是你用document.getElementById('ta').value获取文本然后用它来构建一个新函数,称为fn。然后它就会被执行。

如果你想要真正深入的东西,请寻找类似“javascript执行环境”的东西。