可以用这种方式在javascript中初始化对象吗?
我想在javascript中初始化一个对象,直接调用属于它的方法:可以用这种方式在javascript中初始化对象吗?,javascript,object,initialization,Javascript,Object,Initialization,我想在javascript中初始化一个对象,直接调用属于它的方法: var obj = (function(){ return{ init: function(){ console.log("initialized!"); return this; }, uninit: function(x){ console.log("uninitia
var obj = (function(){
return{
init: function(){
console.log("initialized!");
return this;
},
uninit: function(x){
console.log("uninitialized!");
}
};
}).init();
//later
obj.uninit();
obj.init();
这个具体的例子不起作用,有类似的东西吗?编辑:init()
返回这个
,谢谢Guffa
您只定义了一个匿名函数,而不是实际调用它。要立即调用它,请添加一对括号:
var obj = (function(){
return{
init: function(){
console.log("initialized!");
return this;
},
uninit: function(x){
console.log("uninitialized!");
}
};
})().init();
另外,
init
函数需要返回this
,这样就可以在obj
变量中放入一些内容。好的,感谢Guffa的澄清,我已经编辑了我的问题。在这种情况下,'var obj='实际上是不必要的,是吗?正如我看到的,它已经是全局变量,不需要在这里定义var。但是,如果您不在函数中定义var,它将在全局上下文中定义,因此可能会出错。@Kooilnc:这里var obj=是获取obj引用所必需的,所以我们可以稍后调用它。