Javascript 为什么调用此返回函数时不对其值执行任何操作?

Javascript 为什么调用此返回函数时不对其值执行任何操作?,javascript,function,Javascript,Function,请看以下代码: function doNotCallMe(){ alert("Otherwise the world will be destroyed!"); } function getNotCallable(){ return new function() { alert("Attention!"); doNotCallMe(); }; } var not_callable = getNotCallable(); 浏览器会

请看以下代码:

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

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

var not_callable = getNotCallable();
浏览器会显示警报,但不应该显示。为什么?如何修复

return function() { ... }
而是你想要的


JavaScript中的所有函数在与运算符
new
一起使用时都将充当对象构造函数;因此,您正在定义一个匿名函数,然后通过
new

调用它。您可以从
returnnewfunction(){
中删除
new
。您在谈论哪个警报?是
var obj=new affunction()
执行与
var obj={};affunction.apply相同的操作吗
?这是它的一部分,但不是全部。作为最重要的部分,它错过了原型任务。请阅读JavaScript OOP;可以在上找到一个很好的介绍。