JavaScript参数语法类似{video: true}

JavaScript argument syntax like {video: true}

本文关键字:video true 参数 语法 JavaScript      更新时间:2023-09-26

从这篇文章中,我发现了一种将参数传递为navigator.getUserMedia({video: true, audio: true}, ...)的奇怪语法。作为{video: true, audio: true}调用的传递参数的语法是什么?

虽然这个语法navigator.getUserMedia("audio, video", ...)也工作,我们应该更喜欢哪一个?

我在StackOverflow上找到了这个问题,但接受的答案说它是一个ActionScript语法

语法{...}正在创建对象文字。在本例中,它们恰好将对象字面值构造为形参。

这类似于执行一个函数并将它的返回值作为参数传递:

navigator.getUserMedia(foo(), ...)
var foo = function () {
    var someObj = {video: true, audio: true};
    return someObj;
};

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

This:

{video: true, audio: true}

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

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