美文网首页
重写 fn.toString

重写 fn.toString

作者: Allan要做活神仙 | 来源:发表于2021-09-16 14:56 被阅读0次

2021-09-16

1、重写 fn.toString

function bar(){
  return 2;
}
bar.toString = function(){ return 1 }

alert(bar) // 1
bar + 1 // 2

bar()

重写了一个方法的 toString 方法,然后如果这个方法当字符串用,那么就会执用方法上的 toString 方法,并返回结果,然后再作处理...

当然,如果执行这个函数,还是能执行的,这时与 toString 就没啥关系了。

2、相关面试题:

请编写一个函数使得其被以下任一方式调用都可得到预期结果。

console.log(sum(2,3));   // Outputs 5
console.log(sum(2)(3));  // Outputs 5
console.log(sum(2,3,4);  // Outputs 9
console.log(sum(2)(3)(4);  // Outputs 9

解题:

function  add() {
  let args = [...arguments]; // 类数组切换为数组
  let inner = function() {
    args.push(...arguments); // 存储数组
    return inner; // 利用闭包
  }

  // 关键:巧用 toString 隐式转换,在 add 执行后,依旧能返回重写 to String 的返回结果
  inner.toString = function() {
    return args.reduce((a, b) => a + b);
  }
  
  return inner;
}

相关文章

  • 重写 fn.toString

    2021-09-16 1、重写 fn.toString 重写了一个方法的 toString 方法,然后如果这个方法...

  • 重写,重写,重写 - 草稿

    重要的事情说三次,这是我本该早就发布的文章,由于我的失误,于是乎,现在写这篇文的时候,带着淡淡的忧伤。 今年,最快...

  • GeekBand OC 7. 多态

    运行时多态 重写override 重写方法 没有重写的方法会被重写 没有重写的方法中调用已经重写的方法会调用重写后...

  • Swift 重写override和重载overload

    1.重写override 重写是子类继承父类,重写父类的方法。 重写方法的参数列表必须完全与被重写的方法相同。重写...

  • swift overrid 跟 overload

    1.重写override 重写是子类继承父类,重写父类的方法。 重写方法的参数列表必须完全与被重写的方法相同。重写...

  • apache URL重写

    URL重写 URL rewrite介绍 URL重写 一、URL重写介绍 Apached的重写功能,即是mod_re...

  • JS中的toString()用法,fn.toString()

    转载自:http://www.zhuyuntao.cn/2016/09/05/js%E4%B8%AD%E7%9A%...

  • swift中的继承

    只有类支持继承 重写实例方法、下标 重写类型方法、下标 用class修饰的可以被重写 重写属性 1.重写实例属性 ...

  • 第三章所有对象的通用方法

    目录 重写equals方法时遵守通用约定 重写equals方法时同时也要重写hashcode方法 始终重写 toS...

  • 重写(=覆盖)、重载

    override(重写、覆盖): 子类在继承父类时,重写(重新实现)父类中的方法。 重写(覆盖)的规则: 重写方法...

网友评论

      本文标题:重写 fn.toString

      本文链接:https://www.haomeiwen.com/subject/spbrgltx.html