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;
};

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

于 2013-01-21T16:53:47.307 回答
1

这个:

{video: true, audio: true}

是一个 JavaScript 对象字面量。主要用途之一是将选项列表传递给函数。

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

于 2013-01-21T16:53:56.297 回答