1
<script>
 function makeArray(arg1, arg2){  
        return [ this, arg1, arg2 ];  
    }   
    alert(window.makeArray('one', 'two'));
</script>

質問:

上記のスクリプトの出力は次のとおりです。 [Object Window], one, two, If I changed return [ this, arg1, arg2 ]; 返す ( this, arg1, arg2 ); 出力は次のとおりです。return[] と return() の違いは何ですか?

4

5 に答える 5

6

return複数の引数を返すことはサポートされていません。また、引数に中括弧も必要ないため、次のように呼び出します。

return (this, 'one', 'two');

次に、中かっこは単一の式を囲むだけで、その式の結果が呼び出し元に返されます。

その式の中で、実際に「コンマ演算子」を (2 回) 使用しました。

コンマ式は と の両方をa, b評価しますが、式の結果はそのままです(つまり、右側のオペランド)。abb

あなたの場合(a, b, c)、 と同等の を書い((a, b), c)たので、右端のオペランドを返します (つまり"two")

于 2013-06-13T07:43:27.120 に答える
1

この他の質問は役に立つかもしれません。

基本的にreturn[]、本当にを持っている場合return []、戻り値はアイテムのリストです。それに比べて、return(x)は を呼び出すもう 1 つの方法return xです。

@Alnitak で述べたようにreturn(a, 'one', 'two')、コンマ演算子を使用して式を返しています。

于 2013-06-13T07:44:12.457 に答える
1

これは、3 つの要素を持つ配列を返します。Javascript では、[]は配列表記用です。

return [ this, arg1, arg2 ]; 

一方、これにより式が評価され、最後の引数が常に返されます (arg2):

return ( this, arg1, arg2 ); 

デモンストレーションするには:

console.log( ('a', 'b', 'c') ); // c
console.log( ('a', 'b', false) ); // false
console.log( (true, false, 0) ); // 0
于 2013-06-13T07:46:02.560 に答える
0

JavaScript では、解決される最初のオペランドは丸かっこ 、つまり () です。コンマ演算子は最後のオペランド、つまり 'two' に解決されます。

return ('one', 'two')
return ('two')

したがって、2を返します

于 2013-06-13T07:46:27.297 に答える