为什么可以't我重命名console.log
Why can't I rename console.log?
这似乎应该非常简单:
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 );
相关文章:
- 正在使用Dropzone.js删除服务器上已重命名的文件
- Angular重命名模块后未能实例化模块
- 如何使用laravel重命名已存储在服务器中的文件
- 如何使用外部Javascript库(如jQuery)重命名Google闭包样式表
- lodash:重命名对象中的键
- 阻止对的关闭重命名对象键
- gulp重命名多个文件
- Ckfinder在上传之前重命名图像
- 为什么 Google 闭包编译器会重命名对象的属性名称
- 使用 javascript 重命名数组中的对象键
- JSnice如何进行统计重命名,重命名Javascript变量
- 使用 gruntjs 自定义初始化任务重命名模板文件夹
- 重命名上传的文件Ruby On Rails
- 重命名动态添加或删除的表单字段
- 如何使用PHP、提交和单选按钮复制/重命名/覆盖图像
- 导出时如何重命名excel文件
- 重命名Alfresco脚本中的文件
- 我正在尝试将javascript文本框的输入保存回服务器.我想从保存的弹出文本框中获得输入,以重命名文件夹
- 使用AjaxForm Jquery重命名文件
- 为什么可以't我重命名console.log