为什么调用返回的函数而不对其值进行任何操作?

时间:2012-11-21 05:42:33

标签: javascript function

请查看以下代码:

function doNotCallMe(){
    alert("Otherwise the world will be destroyed!");
}

function getNotCallable(){
    return new function() {
        alert("Attention!");
        doNotCallMe(); 
    };  
}

var not_callable = getNotCallable();

浏览器会显示警报,但不应该显示警报。为什么?怎么解决?

1 个答案:

答案 0 :(得分:2)

return function() { ... }

是您想要的。

与operator new一起使用时,JavaScript中的所有函数都将充当对象构造函数;所以你要定义一个匿名函数,然后通过new调用它。