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