-1

下面的代码被破坏了,它需要工作的是var thing = new thing();,我明白这一点。我的问题是下面的代码有没有办法在不声明新的情况下工作?thingsomething对象中有什么东西?

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 回答