Javascript无法显示警报

时间:2015-03-23 08:42:39

标签: javascript

为什么下面的代码没有打开带有文字" foo"的警告框?

function wrapInObject(value) {
    return
    {
        value: value
    };
}
alert(wrapInObject("foo").value);

同样为什么下面的代码没有打开带有文本" foobar"的警告框?

var a = "foo",
    b = a;
b += "bar";
alert(a);

1 个答案:

答案 0 :(得分:4)

function wrapInObject(value) {
    return {

大括号应与return语句在同一行。这是因为javascript自动半结肠插入。它假定return语句已结束并插入分号。所以它将返回undefined。并且您正在尝试获取value的{​​{1}}属性,这将导致错误。这就是为什么警报没有来的原因。

所以你的代码应该是:

undefined

关于第二个问题:

function wrapInObject(value) {
    return {
        value: value
    };
}

它通过价值而非参考。因此,更改var a = "foo", b = a; b += "bar"; alert(a); 并不会更改b这就是为什么您只获得a的原因。

如果你foo,它会给你alert(b)