私はしばらくの間、JSを書いてきた、と私はIE7との互換性のためのjQueryのjCarouselプラグインをデバッグしようとしています。多くの変数がOKである、難読化されていますが、私はこのような構文を見たことがない:誰もが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
@moonDogDog:いいえ、その関数の中で 'a'は渡されたパラメータになります(この場合' a(k) 'は' for'ループの中で実行されるので、関数 'a'は' k ')。 – Matt