为什么下面的javascript抛出类型错误?

为什么下面的javascript抛出类型错误?,javascript,Javascript,执行 var q = document.querySelector; q("div"); 抛出类型错误:非法调用异常。为什么会这样?因为querySelector方法需要处理文档的实例。你可以打电话 q.call(document, "div") 这表示运行方法,使用此=文档 更详细地说,出现错误的原因是,如果不在该函数中使用上述语法,“this”将引用“window”。函数必须有某种形式的检查,以确保“this”是document类型。您也可以执行var q=document.queryS

执行

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

抛出
类型错误:非法调用
异常。为什么会这样?

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

q.call(document, "div")
这表示运行方法,使用此=文档


更详细地说,出现错误的原因是,如果不在该函数中使用上述语法,“this”将引用“window”。函数必须有某种形式的检查,以确保“this”是document类型。

您也可以执行
var q=document.querySelector.bind(document)