我碰巧經歷了這個article。爲什麼新函數(...)的內容沒有在這些插圖中編譯?
考慮片段:通過使將用於建立一個新的功能的參數期間運行時
function createMyFunction(myOperator)
{
return new Function("a", "b", "return a" + myOperator + "b;");
}
var add=createMyFunction("+"); // creates "add" function
var subtract=createMyFunction("-"); // creates "subtract" function
var multiply=createMyFunction("*"); // created "multiply" function
// test the functions
alert("result of add="+add(10,2)); // result is 12
alert("result of substract="+subtract(10,2)); // result is 8
alert("result of multiply="+multiply(10,2)); // result is 20
alert(add);
即有趣的示例創建3種不同的功能。
作者提到
由於編譯器無法知道什麼樣的最終代碼看起來像 ,新功能(...)的內容的方式未編譯
我只是沒有得到它。有人可以請詳細說明一下嗎?
我猜他們的意思是說,當腳本第一次被解析時,它不會被編譯到代碼中。 –