0

次のJavaScriptコードを実行すると、undefined

var ns=new String('hello world');
String.prototype.capitalAll=function(){
                                 this.toUpperCase()
                                       };
alert(ns.capitalAll()); // undefined

しかし、私が追加するreturnと、それは値を返します

var ns=new String('hello world');
String.prototype.capitalAll=function(){
                                 return this.toUpperCase() // added return
                                       };
alert(ns.capitalAll()); // HELLO WORLD

returnこことすべての関数の最後になぜ必要なのか。私はreturn多くのjavascriptフレームワークでの使用を見てきました。

4

3 に答える 3

1

関数呼び出しから他にどのようにデータを返しますか?

のような関数Array.prototype.shift()は、配列を変更するという点で変形的です。内部的には、それらは次のようなことを行いthis[this.length] = newvalue、実際thisに何らかの方法で変更します。

しかし、ほとんどの関数は変換的ではなく、結果を返します。

于 2013-03-01T17:59:43.240 に答える
0

return関数が呼び出されたときに何を返すかを定義できます。

戻り値は必要ありません。何も返さない関数を使用できます。他の変数を変更するか、何かを出力して続行します。

undefined返される別の値を具体的に指定しない場合に返されます

于 2013-03-01T18:01:38.797 に答える
0

toUpperCaseの機能:

問題は、toUpperCaseがそもそも「this」を変更しないということです。それは値を返す関数です。

一部のメソッドは、呼び出されたオブジェクトを変更します(「this」を変更します)。そのような場合は、関数を自分のように作成できます。ただし、この場合は「return」値を使用する必要があります。

于 2013-03-01T18:26:44.140 に答える