下面的代码已经打破,它需要工作的是var thing = new thing();
,我理解这一点。我的问题是,有没有办法让下面的代码工作而不声明新的? thing
或something
个对象中的某些内容?
var thing = function(){
var something = {};
something.num = function(){
return 5;
};
return something;
};
console.log(thing.num());
答案 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())
。