面试题 js重写原生函数(以push为例)
发布日期:2021-05-13 01:00:19 浏览次数:14 分类:博客文章

本文共 472 字,大约阅读时间需要 1 分钟。

先说明一下为什么要写这个,因为最近在面试,面试的时候面试官问了这个问题,当时是真的没有答上来,回来之后自己考虑了一下,现在给大家分享

要求如下:

重写js push函数,使其能够在push的同时打印出push的元素

分析

有的同学有可能想要用Array.Array.prototype.push = function(){}来重写,但是这样子的话push原本的函数内容就会丢失,你得重写push的逻辑,这样就很麻烦。于是我们想到得先把原本的push函数备份一下,然后重写的时候调用就可以了。

let _push = Array.prototype.pushArray.prototype.push = function(){    for(let i of arguments){        _push.call(this, i);    }    console.log('参数为', arguments);}let a = [1,2,3]a.push(4,5,6)

这个时候控制台已经打印出了我们想要的结果

参考文档

  1. MDN web文档
上一篇:关于toLocaleString(), toString(), valueOf()方法的使用
下一篇:typescript 公共,私有与受保护的修饰符

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月13日 15时40分42秒