【前端面试小册】第4节,实现链式求和add(1).add(2).add(3),百度、滴滴、头条面试题

480 阅读1分钟

面试百度、滴滴、头条都遇到的一道题目,考验基础,还是比较有意思;

1、题目

实现一个add函数,可以直接链式调用求和

add(1).add(2).add(3

2、分析

1、函数可以链式调用,那么函数执行完肯定要返回this才行
2、函数原型上必须add函数,才可使用.add

可自己先思考一下能否实现,跑起来;

3、实现

function _add(num){
    this.sum = 0
    this.sum += num  
    return this
}

_add.prototype.add = function(num){
    this.sum += num
    return this
}

 function add(){
     return new _add(2)
 }

let res = add(2).add(4)

console.log(res.sum); //6

二、思考题(头条、快手面试题)

大家可以先思考下怎么实现;具体答案可查看【 前端面试小册全部内容 】

lazyMan('Lazy').eat('test').firstSleep(1).eat('apple').sleep(2).eat('orange')

// 1、注意必须在执行完firstSleep延迟时间后,才开始按顺序执行
// 2、 遇到sleep必须延迟后再继续执行后面的函数,

// 比如上面 demo输出结果为:

Lazy第一次睡觉

Lazy第一次睡醒了

我的名字是Lazy

Lazy正在吃app

Lazy正在吃apple

Lazy再次睡觉

Lazy再次睡醒

Lazy正在吃orange

这道题也是一个高频题,大家可以自己思考下怎么实现;

平常比较忙,有比较懒,所以会慢慢在掘金分享2年多经验拿到美团L7、百度t7、头条2-1、快手k3b、腾讯9级等大厂offer;

当然也欢迎加我微信:chengdubft,一起学习进步,分享面试小册内容给你;