这是我的功能:
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/
答案 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);