JavaScript在变量中保存document.write并调用它

Mar*_*nha 9 javascript

我试图传递document.write作为变量的引用:

例:

var f = document.write

//then
f('test');
Run Code Online (Sandbox Code Playgroud)

它适用于警报.为什么不兼容document.write

Que*_*tin 10

因为alert不关心什么this是(alert是全局的)并且document.write确实(它需要知道它正在写入哪个文档).

如果你想要一个包装器,那么写一个快捷方式的功能.

function f(str) { document.write(str); }
Run Code Online (Sandbox Code Playgroud)

......然后去仪式上自己去打电话给变量f.自我描述是良好代码的优点.


geo*_*org 8

除了已经说过的内容之外,Javascript 1.8.5还有针对该问题的原生解决方案:绑定功能

f = document.write.bind(document)
f("hello")
Run Code Online (Sandbox Code Playgroud)

上面的链接还包含不支持JS 1.8.5的浏览器的仿真代码.