2012-01-12 25 views
1

.replaceが新しい文字列を返すと仮定しない限り、以下の関数は機能しません。構文は、入力文字列自体が変更されたことを意味します。参照構文がreplace()の動作と一致しない

MDN

str.replace(regexp|substr, newSubStr|function[, Non-standardflags]); 

コードMDNから

escape: function (second_split) 
{ 
    for(element in second_split) 
    { 
    second_split[element] = second_split[element].replace('**', '*'); 
    second_split[element] = second_split[element].replace('*|', '|'); 
    } 
return second_split; 
}, 
+1

いいえ、プリミティブ文字列は不変です。 'replace'は新しい値を返します。 –

+0

"*ただし、MDNのドキュメントでは、戻り値の記述はありません。 MDNの最初の文: "*新しい文字列を返す... *"。 –

+0

@Sime ...参考に編集された申し訳ありません - 構文は動作しません。 –

答えて

2

このメソッドは、それが呼び出されたStringオブジェクトを変更しません。単に新しい文字列を返します。上部の要約からも

、:

だから、戻って新しい文字列を置換...

を持つ新しい文字列を返します。文字列は不変なので、それ以外のことは意味をなさないでしょう。

+0

私は、関数のプロトタイプを見ました。戻り値がリストされています...例えばgetElementById。少し矛盾。 –

+0

ええ、おそらくそこに戻り値が含まれているはずです。ドキュメントがwikiのように編集可能ではありませんか?私はそれがうまくいくかどうかは確かではありませんが、それを修正したり、誰かにあなたのためにそれを修正するよう依頼することができますか? –

関連する問題