gpt4 book ai didi

javascript - 为什么我不能重命名 console.log?

转载 作者:数据小太阳 更新时间:2023-10-29 05:43:27 25 4
gpt4 key购买 nike

这看起来应该很简单:

var print = console.log;
print("something"); // Fails with Invalid Calling Object (IE) / Invalid Invocation (Chrome)

为什么它不起作用?

最佳答案

因为您使用全局对象作为接收者调用该方法,而该方法严格来说是非泛型的,并且需要一个 Console 的实例作为接收者。

泛型方法的一个例子是Array.prototype.push:

   var print = Array.prototype.push;
print(3);
console.log(window[0]) // 3

不过你可以这样做:

var print = function() {
return console.log.apply( console, arguments );
};

而ES5提供了.bind也实现了和上面一样的功能:

var print = console.log.bind( console );

关于javascript - 为什么我不能重命名 console.log?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17365708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com