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() { ... }

代わりにあなたが望むものです。

JavaScriptのすべての関数は、演算子と一緒に使用するとオブジェクトコンストラクターとして機能しますnew。つまり、無名関数を定義してから、を介してそれを呼び出しますnew

于 2012-11-21T05:46:46.567 に答える