调用object'的函数而不声明'

Call object's function without declaring "new"?

本文关键字:声明 函数 调用 object      更新时间:2023-09-26

下面的代码被打破了,它需要工作的是var thing = new thing();,我理解这一点。我的问题是,有没有一种方法可以让下面的代码工作而不声明新的?在thingsomething物体中?

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

我相信你在找这个:

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

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