0

この記事から、パラメータをとして渡すための奇妙な構文を見つけましたnavigator.getUserMedia({video: true, audio: true}, ...){video: true, audio: true}呼び出されたパラメータを渡すこの構文は何ですか?

この構文navigator.getUserMedia("audio, video", ...)も機能しますが、どちらを選択する必要がありますか?

StackOverflowで質問を見つけましたが、そこで受け入れられた答えは、ActionScript構文であると言っています。

4

2 に答える 2

3

構文{...}は、オブジェクトリテラルを作成しています。この場合、それらはたまたまオブジェクトリテラルをパラメータとして構築しています。

これは、関数を実行してその戻り値をパラメーターとして渡すことに似ています。

navigator.getUserMedia(foo(), ...)

var foo = function () {
    var someObj = {video: true, audio: true};

    return someObj;
};

オブジェクトリテラルを渡すことの利点は、論理的に関連する複数の引数を1つの仮パラメータとして一緒に渡すことができることです。これにより、動的な引数が可能になります。これは、argumentsオブジェクトを使用することでも実現できますが、ほとんどの人は、理解と保守が容易なため、オブジェクトを渡すことを好みます。

于 2013-01-21T16:53:47.307 に答える
1

これ:

{video: true, audio: true}

JavaScriptオブジェクトリテラルです。主な用途の1つは、オプションのリストを関数に渡すことです。

2つのオプションのどちらを使用するかについては、オブジェクトリテラル構文の方が直感的であるため、どちらを使用するかを選択します。両方ともtrueに設定されることがわかります。

于 2013-01-21T16:53:56.297 に答える