为什么以下javascript会抛出TypeError?

时间:2012-03-05 23:35:52

标签: javascript

执行

var q = document.querySelector;
q("div");

抛出TypeError: Illegal Invocation个异常。那是为什么?

1 个答案:

答案 0 :(得分:3)

因为querySelector方法需要一个文档实例来处理。你可以打电话

q.call(document, "div")

其中说运行方法,使用this = document

详细说明,你得到错误的原因是因为如果你不使用上述语法,那么该函数中的'this'将引用'window'。该函数必须进行某种形式的检查,以确保'this'是类型文档。