为什么我的功能不起作用?

时间:2011-03-28 18:39:52

标签: javascript

现在我已经回答了其他问题,此功能无效。怎么了?

Weird JavaScript statement, what does it mean?

How to handle click event in javascript?

function myFunc() {
    return
    {
        obj = this;
    };
}

3 个答案:

答案 0 :(得分:6)

创建对象文字的语法是:

{ foo: bar }

{ foo = bar }

此外,在JavaScript中,新行可以终止语句。在return返回undefined之后放置一个新行,并且永远不会到达对象文字代码。 JSLint可以解决此类问题。

答案 1 :(得分:6)

由于JavaScript自动添加分号的方式,您的功能无效。

您的return语句被JavaScript读取为:

return;
{
    obj: this;
};

您需要将{return放在同一行:

return{
    obj: this;
};

此外,对象必须是{name: value}

答案 2 :(得分:5)

这是因为分号注射。

此:

return
  { myProperty: "hello world" };

解析如下:

<< return statement >>
<< pointless object literal expression >>

as:

<< return statement with return value expression >>

要返回对象值,您的代码必须如下所示:

return {
  myProperty: "hello world"
};

{return相同的行