currying - Javascript 连续调用单参函数实现任意参函数
天蓬老师
天蓬老师 2017-04-10 15:28:14
0
14
1504

函数 add 可以实现连续的加法运算
函数 add 语法如下 add(num1)(num2)(num3)...; //注意这里是省略号哟,可无限

使用举例如下:

add(10)(10); // 20
add(10)(20)(50); // 80
add(10)(20)(50)(100); // 180

var add30 = add(10)(20); // 30
var add100 = add30(30)(40); // 100
var add31 = add30(1); // 31
var add40 = add31(9); // 40
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全員に返信(14)
大家讲道理

网易的考试题...哈哈~

いいねを押す +0
巴扎黑

顶上去啊 自己还没想出来!

いいねを押す +0
阿神

好像是通过拓展Number.prototype可以解决吧。

いいねを押す +0
大家讲道理

那样写扩展性也不好吧。

下面是我的思路。

function Result() {
    this.result = 0;
}

//加法
Result.prototype.add = function(value) {
    this.result = isNaN(value) ? this.result : this.result + value;
    return this;
}

//减法
Result.prototype.sub = function(value) {
    this.result = isNaN(value) ? this.result : this.result - value;
    return this;
}

Result.prototype.getResult = function() {
    return this.result;
}

类似于这种的思路。

调用

var result = new Result();
result.add(1).add(2).sub(3);
retult.getResult();
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート