我一直在寫JS,我一直在試圖調試IE7兼容性的jQuery jCarousel插件。很多變量會被混淆,這是確定的,但我從來沒有見過的語法是這樣的:任何人都可以從jCarousel解釋下面的JavaScript代碼嗎?
scroll: function (a, c) {
!this.locked && !this.animating && (this.pauseAuto(), this.animate(this.pos(a), c))
}
這似乎是某種速記符號的,但我從來沒有碰到過這樣的事。
同樣,
for (var a = function (a) {
i.get(a).each(function() {
h(i, this, a, b, c)
})
}, k = d; k <= f; k++) {
k !== null && !(k >= j && k <= e) && a(k)
}
我從來沒有見過的功能被指定爲迭代器,並再次塊語句裏面看起來像第一個例子。我知道,當我們編寫代碼時,我們都努力保存幾個字節,但對我來說,這種狂熱的嘗試是以對其他程序員完全混淆和困惑爲代價的。任何人都可以給我一個簡單的「長期」替代/徹底解釋發生了什麼?我總是想知道更多關於這種語言以及它是如何工作的,謝謝。
可以肯定的是,賦值給var a的函數中的參數是var a的一個先前聲明的實例,對嗎? – danronmoon 2012-04-20 16:11:15
@moonDogDog:不,在函數中'a'將是傳遞的參數(在這種情況下'a(k)'在'for'循環中運行,所以在函數'a'內部將是'k ')。 – Matt 2012-04-20 16:13:54