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;可以在上找到一个很好的介绍。