0

看下面的代码:

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

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

var not_callable = getNotCallable();

浏览器显示不应该的警报。为什么?怎么修?

4

1 回答 1

2
return function() { ... }

是你想要的。

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

于 2012-11-21T05:46:46.567 回答