昨日、ポスターが配列の内容の大文字小文字をどのように変換するかを質問していました。私は、私は次のようにマップするための関数への参照を渡すことができることを知っている:私は仕事をマップするためにUpperCaseを渡さないのはなぜですか?
function appendText (el){
return el += ' - appended text';
}
['a','b'].map(appendText); //["a - appended text", "b - appended text"]
しかし、私は
array.map(String.toUpperCase);
array.map(String.prototype.toUpperCase);
と試みたとき、私はエラーが出ることがような音になり
Uncaught TypeError: String.prototype.toUpperCase called on null or undefined
メソッドが渡されていませんmap
、私はそれを理解すると、渡すだろう。なぜこれは機能しませんか?
'appendText'は' toUpperCase'が文字列になるしないように、引数を期待する(
appendText(a)
で示すように)最初のパラメータとして値を名前で関数を実行します'this'はマップから要素を取得しますが、使用するようには設計されていません。これは 'stuff 'として使われます。toUpperCase()' String.toUpperCase(' stuff ') 'ではありません。 – GillesC' array.map(s => s.toUpperCase()) 'を試してください。 – hsfzxjy
@hsfzxjyそれは大文字の配列ですそれは問題ではありません。 – 1252748