javascript - js自定义console.log完全不理解,求大神

查看:195
本文介绍了javascript - js自定义console.log完全不理解,求大神的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

function log(){
    console.log.apply(console, arguments);
};

这句中我理解该是,让console指向console.log,为什么要让console这个对象指向它自己的一个方法呢?还有后边这个arguments是传入给console的应该,但是console(arguments),也不是console.log(arguments)啊,完全看不懂,急哭,求大神帮帮忙

解决方案

function log(){
    console.log.apply(console, arguments);
};

arguments为log函数调用时实际传递给log函数的参数列表,是一个类数组对象,可以获取其长度及通过下标获取log函数实际调用时接收到的各个参数
apply方法为Function函数对象的方法,其第一个参数指定了函数对象的的执行上下文,也就是我们函数调用时的this变量的指向,apply第2个参数为一个数组,为传递给函数对象的运行参数

上面代码这样写的一个目的就是为了解决log方法被调用时实际传入参数不确定的问题,参数的不确定导致你方法通过常规的console.log方法来输出日志

类似的还有一个call方法,和apply方法的区别为参数是一个一个参入而不是以数组的方法打包传入,在你有确定的参数个数时使用

这篇关于javascript - js自定义console.log完全不理解,求大神的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆