0
我正在瀏覽YouTube的一些JavaScript代碼,並且遇到了一些我從未見過的東西。以下是相關的代碼位:在JavaScript中無處插入的括號
for (var e = window.ytbuffer.queue, a = 0; 5 > a && a < e.length; a++) {
var g = e[a],
h = g.target || g.srcElement;
(0, m.Hf)((0, m.Af)({
a: "buffer_events",
event_index: a,
clientX: g.clientX,
clientY: g.clientY,
localName: h.localName,
className: h.className,
id: h.id,
page_name: (0, m.v)("PAGE_NAME")
}))
}
window.document.removeEventListener ? window.document.removeEventListener("click",
window.ytbuffer.enqueueEvent, !1) : window.document.detachEvent("onclick", window.ytbuffer.enqueueEvent);
(0, m.Wc)("ytbuffer")
我想知道的是,(0,m.Hf)實際上做了什麼?我知道括號可以用作數學運算的分組,但是我不希望在那裏看到逗號,並且我知道括號可以用來包圍函數參數,但是沒有函數名稱。
感謝,
YM
編輯:我使用的頁面上Chrome的檢查,發現m是不確定的。這使我更加困惑。
是否有機會返回最後定義的值?這可以解釋這裏的目的,調用m.Hf()或者根據m.Hf是否被定義而不做任何事情,對吧?它是這樣工作嗎? –
不,它總是返回最後一個參數(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#Comma_operator)。我認爲這個代碼由於某種原因被故意混淆了。使用'0'作爲函數將是一個錯誤。 –
嗯,奇怪。好吧,我猜混淆在我身上。 –