-1

以下のコードは壊れており、機能するために必要なのは だけvar thing = new thing();です。これは理解しています。私の質問は、以下のコードが new を宣言せずに機能する方法はありますか? thingまたはsomethingオブジェクトに何かありますか?

var thing = function(){

    var something = {};

    something.num = function(){
        return 5;
    };

    return something;

};

console.log(thing.num());
4

1 に答える 1

2

私はあなたがこれを探していると信じています:

var thing = (function(){
    var something = {};
    something.num = function(){
        return 5;
    };
    return something;
}());

console.log(thing.num());

これにより、その関数がすぐに実行され、戻り値(something)がに割り当てられthingます。元のコードは、関数自体をに割り当てましたthing。元の関数を保持したい場合は、を使用できますconsole.log(thing().num())

于 2013-01-09T16:40:57.740 に答える