为什么我的功能不工作?
现在我有我的其他问题的答案,此功能无法正常工作。怎么了?为什么我的功能不工作?
Weird JavaScript statement, what does it mean?
How to handle click event in javascript?
function myFunc() {
return
{
obj = this;
};
}
由于JavaScript自动添加分号,您的功能无法正常工作。
你return
声明是由JavaScript的解读为:
return;
{
obj: this;
};
你需要把{
在同一行return
:
return{
obj: this;
};
此外,对象必须是{name: value}
。
我试过,但它仍然没有工作。我不认为你的东西是对的。 – 2011-03-28 18:43:56
你说得对分号,但'OBJ = this'是不允许的对象构造函数中。只在一个街区。我认为,'='需要成为一个冒号。 – 2011-03-28 18:44:49
@Stack大师:应该现在的工作。 – 2011-03-28 18:45:07
的语法来创建一个对象文字是:
{ foo: bar }
不
{ foo = bar }
另外,在JavaScript新行可以终止一条语句。通过在return
之后放置新行,您将返回undefined
,并且永远不会达到对象文字代码。 JSLint可以解决这类问题。
这是因为分号注射。
此:
return
{ myProperty: "hello world" };
被解析如下:
<< return statement >>
<< pointless object literal expression >>
而且不为:
<< return statement with return value expression >>
返回一个对象值,您的代码看起来像这个:
return {
myProperty: "hello world"
};
与{
上在同一行作为return
。
但是我有一个防火墙来防止这个,现在呢? – 2011-03-28 18:42:55
我想你的意思是分号插入。 – 2011-03-28 18:43:26
@Stack Guru,我可以从哪里获得防火墙? – 2011-03-28 18:43:34
你在做什么? – canon 2011-03-28 18:41:58
尝试从我的函数返回一个对象。 – 2011-03-28 18:44:44
我很想试图解决这个问题,但有几个人已经回答了。该函数中有两个语法错误。解决这两个问题,它会按预期工作。 – 2011-03-28 18:48:38