为什么我不能在javascript中这样做:
var log = console.log;
log(123);
Run Code Online (Sandbox Code Playgroud)
以及如何实现这一目标?
在JavaScript中,值this取决于函数的调用方式.
里面log(),this是undefined在严格模式或以其他方式默认对象(这是window在浏览器中).
里面console.log(),this是console.
log据推测,该功能取决于对该console对象的访问权限.
您可以编写包装函数:
function log() {
console.log.apply(console, arguments);
}
Run Code Online (Sandbox Code Playgroud)
在足够现代的浏览器中,您可以使用生成该功能bind.
var log = console.log.bind(console);
Run Code Online (Sandbox Code Playgroud)