为什么我不能在javascript中创建:
var log = console.log;
log(123);
如何实现这一目标?
答案 0 :(得分:6)
在JavaScript中,this
的值取决于函数的调用方式。
在log()
内,this
在严格模式下为undefined
,否则为默认对象(在浏览器中为window
)。
在console.log()
内,this
为console
。
log
函数可能取决于对console
对象的访问权限。
您可以改为编写包装函数:
function log() {
console.log.apply(console, arguments);
}
在sufficiently modern browsers中,您可以使用bind
生成该功能。
var log = console.log.bind(console);