我保存文档方法的引用:
let qs = document.querySelector;
然后尝试获取元素:
btnSort = qs('button');
为什么这种方法不能像引用简单函数那样起作用?
答案 0 :(得分:1)
因为JavaScript中的this
是在运行时确定的。
document.querySelector(...) // this -> document
let qs = document.querySelector
qs(...) // In this case `this` refer to the global object, which is window in a browser
创建函数引用时,您需要绑定this
。
let qs = document.querySelector.bind(document)
或者在您调用它时给出此绑定。
qs.call(document, 'button')