JavaScript参数语法,如{video:true}

时间:2013-01-21 16:51:02

标签: javascript

从这个article我发现了一个奇怪的语法,用于将参数传递为navigator.getUserMedia({video: true, audio: true}, ...)。将参数传递为{video: true, audio: true}的语法是什么?

虽然这种语法navigator.getUserMedia("audio, video", ...)也有效,但我们应该选择哪一种?

我找到了question on StackOverflow,但接受的答案是它的ActionScript语法。

2 个答案:

答案 0 :(得分:3)

语法{...}正在创建一个对象文字。在这种情况下,它们碰巧将对象文字构造为参数。

这类似于执行函数并将其返回值作为参数传递:

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

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

    return someObj;
};

传递对象文字的好处是它允许您将多个逻辑相关的参数作为一个形式参数传递。这允许动态参数,这也可以通过使用arguments object来实现,尽管大多数人更喜欢传递对象,因为它更容易理解和维护。

答案 1 :(得分:1)

此:

{video: true, audio: true}

是一个JavaScript对象文字。其中一个主要用途是将选项列表传递给函数。

至于使用哪两个选项,我更喜欢对象文字语法,因为它更直观的两个:你可以看到它们都将被设置为true。