&引用;这";在JavaScript中

&引用;这";在JavaScript中,javascript,Javascript,我试图理解如何将JavaScript函数组合为对象的语法 问:这样做对吗 我问这个问题的原因是因为我正在Firebug中查看它,我希望能够深入查看myVar和myVariable的值,但是Firebug只说“这”是一个对象 var myObject = { init: function() { var myVar = 1; myObject.myVariable = 2; console.log('"this" when called as

我试图理解如何将JavaScript函数组合为对象的语法

问:这样做对吗

我问这个问题的原因是因为我正在Firebug中查看它,我希望能够深入查看myVar和myVariable的值,但是Firebug只说“这”是一个对象

var myObject = {
    init: function() {
        var myVar = 1;
        myObject.myVariable = 2;
        console.log('"this" when called as an object: ' + this);
    }
}
myObject.init();

还有,在声明时直接调用它的有趣的小语法是什么?关于()的一些内容,但当我删除最后一行并将()放在声明末尾时,会出现语法错误。

这将创建一个字符串:

'"this" when called as an object: ' + this 
但是,
这个
不是字符串,所以它的toString()原型被调用。这就是为什么您只能看到
[object object]


如果您想让Firebug显示实际对象,请执行一个简单的
console.log(this)
,或者直接使用
console.dir(this)

来查看内容,这里有一个很好的参考,说明“有趣的小语法”在这里并不真正适用,因为您并不是真正创建“函数对象”-这只是一个具有属性的对象,其值是对函数对象的引用


然而,尽管在Stackoverflow上已经做得很死了,但您可能正在谈论这样的事情:

var myobject = (function() {
  var something = { whatever: "for example" };
  return {
    init: function() {
      this.foo = "hello";
      // initialize
    },
    getSomething: function() { return something.whatever; }
  };
})();

现在,通过调用匿名函数初始化“myobject”,该函数将在该语句之后立即丢弃。但是,由函数调用形成的闭包仍然有效。

“尽管它在Stackoverflow上被执行到了死亡” 我甚至不知道如何界定问题的框架,以便我能看到类似的问题。

我试过一个关于“this”的问题,通过用逗号替换“+”找到的搜索结果,我能够更好地理解“this”。谢谢韦泽尔!