document.querySelector.bind(document)是什么意思;

时间:2013-01-10 05:28:59

标签: javascript bind document parallax.js

我正在检查来自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。是不是已经确定了文件的范围?

2 个答案:

答案 0 :(得分:3)

不,the function未绑定到特定文档(可能还有其他文档,而不仅仅是window.document)。如果没有尝试,您将获得WRONG_THIS_ERR例外 - 您需要将其应用于实现Document interface的对象。

另请参阅MDN's introduction to the this keyword,了解如何确定函数调用的thisVal(“context”)。

答案 1 :(得分:0)

对于将来的Google员工来说,作为一个补充,也可以使用document.querySelector.bind(document)进行类似jQuery的选择:

var $$ = document.querySelector.bind(document);
console.log( $$('#answers').textContent );

var $$ = document.querySelector.bind(document);
console.log( 'Ye Olde StackSnippet body: ', $$('body').textContent );