2

我试图理解如何将JavaScript函数作为对象组合在一起的语法。

Q: 这是正确的方法吗?

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

var myObject=变量myObject={init:函数(){var myVar=1;myObject.myVariable=2;console.log('作为对象调用时为“this”:'+this);}}myObject.init();

另外,在声明时直接调用它的有趣的小语法是什么?关于(),但当我删除最后一行并将()放在声明末尾时,我得到了一个语法错误。

3个答案

重置为默认值

这将创建一个字符串:

'作为对象调用时为“this”:'+this

但是不是字符串,因此将调用其toString()原型。这就是为什么你只看到[对象对象].

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

1
  • 通过用逗号代替+,我可以更好地理解“this”。谢谢Wetzel! 评论 2010年12月27日19:20
2

“有趣的小语法”在这里并不适用,因为您并没有真正创建“函数对象”——它只是一个具有属性的对象,其值是对函数对象的引用。

然而,尽管在Stackoverflow上已经做得一塌糊涂了,你可能正在谈论这样的事情:

var myobject=(函数(){varsomething={whatever:“例如”};返回{init:函数(){this.foo=“你好”;//初始化},getSomething:function(){return something.whatever;}};})();

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

2
1

以下是一个很好的参考JavaScript对象创建

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.