本來依照我的寫法是這樣的
function Encryption(keyword){ //倒序字串
var Result='';
for(var i=keyword.length;i>=0;i--){
Result+=keyword.charAt(i);
}
return Result;
}
但是webStorm卻是出現警告
primitive value returned from constructor will be lost when called with 'new'
在網路上爬了文
之後我改寫成了
function Encryption(keyword){ //倒序字串
this.Result='';
for(var i=keyword.length;i>=0;i--){
this.Result+=keyword.charAt(i);
}
}
警告訊息就沒了
但是我不明白為什麼我第一個寫法會出現訊息?
return不是這樣用的嗎?
如果你是寫
<pre class="c" name="code">var v = Encryption(keyword);
那麼第一種寫法沒錯,Encryption 只是個 function。
如果你是寫
<pre class="c" name="code">var v = new Encryption(keyword);
那麼要寫成第二種,因為 Encryption 是物件建構子。
依訊息,你是用 new 在呼叫一般 function 吧?多此一舉地加了 new 這個關鍵字。
webstorm 认为
首字母大写的是要定义为 class 类型
普通的 function 建议首字母小写
你改成小写,警告就没了