document.createElement非法调用

Elf*_*lfy 4 javascript typeerror

我当时想尽量减少一些JavaScript代码,但是当我尝试通过别名调用函数时出现此“非法调用”错误

var d = document.createElement;
d('input');
Run Code Online (Sandbox Code Playgroud)

有人知道为什么吗?发射

Col*_*inD 7

看来其他人已经解决了这个问题。归结为以下事实

document.createElement检查以确保this引用document。您可以通过执行以下操作来绕过此行为:

答:始终将其用作document.createElement(tagname)OR

var o = document.createElement
o.call(document, tagname)
Run Code Online (Sandbox Code Playgroud)

C

var d = document.createElement.bind(document); 
Run Code Online (Sandbox Code Playgroud)

(从上面的答案)

看到http://blog.vjeux.com/2011/javascript/hook-document-createelement.html


Jar*_*a X 5

var d = document.createElement.bind(document);
Run Code Online (Sandbox Code Playgroud)

绑定this在你的d函数的document对象