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

要求如下:

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

分析

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

let _push = Array.prototype.push
Array.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)

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

面试题 js重写原生函数(以push为例)

参考文档

  1. MDN web文档 ????

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-19
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-05-06
  • 2021-08-17
  • 2021-10-20
  • 2021-12-01
  • 2022-12-23
  • 2021-11-23
相关资源
相似解决方案