标签:sele document his doc 调用 一个 cat 方法 ora
let $ = document.body.querySelectorAll; $(‘#wrap‘); //报错:Uncaught TypeError: Illegal invocation
有些小伙伴应该尝试过以上的操作吧~~这个是为什么呢?报错也说得不明不白,只是说“不合法的调用”,下面我来解释一下吧~
再来看下这个:
let haha = console.log; haha(‘12345‘); //12345
这里没有报错,这是为什么呢?都是用一个变量装载系统内置的函数,为什么一个可以运行,一个就报错呢?
上网查了一下解决方法,很简单,就是把querySelectorAll绑定到对应的对象上:
let $ = document.querySelectorAll.bind(document); $(‘#wrap‘); //正常返回了,不报错
这样就可以大概猜测到为什么报错了,因为querySelectorAll里面有对this的调用,这也是js的痛点,this是多么脆弱啊~~
标签:sele document his doc 调用 一个 cat 方法 ora
原文地址:http://www.cnblogs.com/amiezhang/p/7998450.html