为什么当我不使用中间变量这个功能不起作用?

时间:2014-02-25 12:19:42

标签: javascript

这是我的功能:

function Ship(shipType) {

    this.name = shipType;
    this.detailedName = function() {
        var c=
            this.name.charAt(0).toUpperCase() +
            this.name.slice(1);
        return c;
    };
}

现在如果我尝试优化=没有中间变量,这不起作用。 为什么呢?

function Ship(shipType) {

    this.name = shipType;
    this.detailedName = function() {
        return
            this.name.charAt(0).toUpperCase() +
            this.name.slice(1);
    };
}

以下是显示问题的小提琴:http://jsfiddle.net/VW5w3/

2 个答案:

答案 0 :(得分:1)

Automatic Semicolon Insertion。浏览器会尝试将您的return更正为return;

如果你将返回值放在与return关键字相同的行中,它将正常工作,看看这个更新的小提琴:http://jsfiddle.net/VW5w3/1/

return this.name.charAt(0).toUpperCase() + this.name.slice(1);

答案 1 :(得分:1)

我认为这是因为;在JS中不是强制性的,因此return会返回undefined。 请将return写在一行中:return this.name.charAt(0).toUpperCase() + this.name.slice(1);