请查看以下代码:
function doNotCallMe(){
alert("Otherwise the world will be destroyed!");
}
function getNotCallable(){
return new function() {
alert("Attention!");
doNotCallMe();
};
}
var not_callable = getNotCallable();
浏览器会显示警报,但不应该显示警报。为什么?怎么解决?
答案 0 :(得分:2)
return function() { ... }
是您想要的。
与operator new
一起使用时,JavaScript中的所有函数都将充当对象构造函数;所以你要定义一个匿名函数,然后通过new
调用它。