今天遇到的问题,求高手指点,谢谢
<1 native 函数重命名>
定义 var p = console.log
可以正常调用 p('x') => 输出 x
....................................
但定义 var qa = document.querySelectorAll
调用 qa('div') 发生错误 Illegal invocation
===========================
<2 代码定位>
定义函数
<1> function p(x) {
<2> console.log(x)
<3> }
然后在某处调用
<10> p(111)
在 chrome Console 中 只显示定义处的行号"2",不显示调用处的行号"10"
1
wwjvtwoex OP 补充 :
var qa = document.querySelectorAll 问题 1 的 错误信息 是 chrome 显示的 在 firefox 下显示 TypeError: 'querySelectorAll' called on an object that does not implement interface Document. |
2
sunjourney 2018-02-27 12:54:28 +08:00 2
```
var p1 = function (...args) { console.log(...args) } var p2 = console.log.bind(console) var qa1 = function (...args) { return document.querySelectorAll(...args) } var qa2 = document.querySelectorAll.bind(document) ``` 如果不知道为什么,js 可以重修一下 |
3
dtysky 2018-02-27 13:32:16 +08:00 via Android
func 不属于 obj,你存只是存了个引用,func 的 this 是调用时注入的。
lz 确实应该补补 js 基础…… |
4
DOLLOR 2018-02-27 13:37:25 +08:00
百度“ js 函数的四种调用方式”
|
5
wwjvtwoex OP 谢谢大家,正在回炉中
|