在函数调用/构造函数调用前面的[...] Javascript语法

时间:2015-05-26 07:03:50

标签: javascript

我在javascript中找到了一个我从未有过的语法 之前见过,我无法找到合适的人选 文档。

它来自一个教程:

var connection = new [webkit|moz]RTCPeerConnection(...)

我可以自己找到webkit的含义以及moz的含义, 可能这些是两个定义的常量或枚举。

但我的问题是:

语法[webkit|moz]在方括号中的含义是什么?

是某种类型转换功能结果的结果吗?

|[webkit|moz]字符的含义是什么?这是OR运算符吗?

THX

3 个答案:

答案 0 :(得分:4)

这不是正确的javascript语法(如果你尝试运行它,你会在第一个[得到意外的令牌错误),这只是意味着你必须在你的代码中使用,即: p>

new mozRTCPeerConnection()

适用于Firefox,

new webkitRTCPeerConnection()

适用于基于webkit的浏览器。

请参阅RTCPeerConnection上的MDN文档:

  

由于此技术的规范尚未稳定,请检查兼容性表以了解在各种浏览器中使用的正确前缀。

  

警告:RTCPeerConnection和RTCSessionDescription目前在大多数浏览器中都是前缀。如果您在任何工作中使用polyfill,则应该包含polyfill。

答案 1 :(得分:2)

正如@doldt所说,它不是js语法,只是一个伪代码指示。 您可以使用一种polyfill来实例化正确的:

var PeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;

Source

答案 2 :(得分:2)

这取自Mozilla开发者网络:

  

警告:当前是RTCPeerConnection和RTCSessionDescription   大多数浏览器都有前缀。如果你是的话,你应该包括一个polyfill   在任何工作中使用它。例如:

var PeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;

查看以下文档: https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection