2015-05-26 143 views
5

我在javascript中找到了一個語法,我從來沒有看過 ,我無法找到正確的 文檔。JavaScript語法,在函數調用/構造函數前面調用

它來自一個教程:

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

我可以自己查找webkit的手段,什麼手段MOZ, 想必這是兩個定義的常量或枚舉。

但我的問題是:

是什麼語法[webkit|moz]在這些方括號是什麼意思?

是某種類型的函數結果的類型轉換嗎?

|字符在[webkit|moz]中是什麼意思 - 這是OR運算符嗎?

THX

回答

4

這不是正確的JavaScript語法(如果你嘗試運行它,你會在第一[得到一個意外的標記錯誤),它只是意味着你必須使用或者在你的代碼,即:

new mozRTCPeerConnection() 

爲Firefox和

new webkitRTCPeerConnection() 

基於WebKit瀏覽器。

參見RTCPeerConnection的MDN文檔:

因爲這項技術的規範還沒有穩定下來,檢查兼容性表正確的前綴在不同的瀏覽器使用。

警告:RTCPeerConnection和RTCSessionDescription在大多數瀏覽器目前前綴。如果你在任何工作中使用它,你應該包括一個polyfill。

+0

逸岸我已經發現這一點:window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection – SharpEdge

2

由於@doldt表示它不是js語法,只是一個僞代碼指示。 可以使用一種填充工具的實例正確的:

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

Source

2

這是由Mozilla開發的網絡採取:

警告:RTCPeerConnection和RTCSessionDescription目前 前綴中大多數瀏覽器。如果你在任何作品中使用 ,你應該包含一個polyfill。例如:

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

採取在看的文檔: https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection