调用对象的函数而不声明“新”?

时间:2013-01-09 16:35:36

标签: javascript object

下面的代码已经打破,它需要工作的是var thing = new thing();,我理解这一点。我的问题是,有没有办法让下面的代码工作而不声明新的? thingsomething个对象中的某些内容?

var thing = function(){

    var something = {};

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

    return something;

};

console.log(thing.num());

1 个答案:

答案 0 :(得分:2)

我相信你正在寻找这个:

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

console.log(thing.num());

这将立即执行该功能,并将返回值(something)分配给thing。您的原始代码将函数本身分配给thing。如果您想保留原始功能,可以使用console.log(thing().num())