Javascript文字对象中的私有var

mau*_*int 2 javascript var private object-literal

如何在文字对象中声明私有var?我保留了这段代码:

var foo = {

    self: null,

    init: function() {
        self = this;
        self.doStuff();
    },

    doStuff: function() {
        //stuff here
    }

}
Run Code Online (Sandbox Code Playgroud)

这非常有效,但是如果我有一些对象,var"self"它将覆盖..显然它是一个全局变量..我不能在这个对象中使用受限制的单词"var".

我该如何解决这个问题,或者为每个对象创建一个NameSpace?

谢谢!

Jam*_*ark 6

您可以创建一个函数范围来隐藏变量:

var foo = (function() {
  var self = null
  return {
    init: ...,
    doStuff: ...
  };
})();
Run Code Online (Sandbox Code Playgroud)

虽然不清楚self这里应该做什么,以及如何foo使用.