6

私はhtml5rocksからこのコードをチェックしていました: http://www.html5rocks.com/static/demos/parallax/demo-1a/scripts/parallax.js

そして、彼らが使用していることに注意してください

(function(win, d) {

  var $ = d.querySelector.bind(d);

  ....

  var mainBG = $('section#content');

  ....

})(window, document);

ドキュメントを querySelector にバインドする理由。すでにドキュメントにスコープされていませんか?

4

2 に答える 2

4

いいえ、関数は特定のドキュメントにバインドされていません ( だけでなく、他のドキュメントがある場合もありますwindow.document)。せずに試してみると、例外が発生します。インターフェイスWRONG_THIS_ERRを実装するオブジェクトに適用する必要があります。Document

また、関数呼び出しの (「コンテキスト」) がどのように決定されるかについて、MDN のthisキーワードの紹介もご覧ください。thisVal

于 2013-01-10T05:32:35.850 に答える