面试百度、滴滴、头条都遇到的一道题目,考验基础,还是比较有意思;
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,一起学习进步,分享面试小册内容给你;