Java教程

云知声 面试题

本文主要是介绍云知声 面试题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

编写函数 实现如下结果

sum(1, 2, 3).valueOf() // 6
sum(1, 2, 3)(4).valueOf() // 6
sum(1, 1, 3)(1, 2, 3)(100).valueOf() // 111

 

代码如下

1.使用了闭包

let sum = (function () {
    let count = 0
    return function fn() {
        let args = [].slice.call(arguments)

        count = args.reduce((a, b) => a + b, count)
        fn.valueOf = function () {
            console.log(count)
            count = 0
        }
        return fn
    }
})()

2. 

let sum = function () {
    sum.count = (sum.count || 0)
    sum.count = [].slice.call(arguments).reduce((a, b) => a + b, sum.count)
    sum.valueOf = function () {
        console.log(sum.count)
        sum.count = 0
    }
    return sum
}

 

 

 

这篇关于云知声 面试题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!