【发布时间】:2016-01-27 00:23:48
【问题描述】:
搜索了很长一段时间后,我仍然没有找到我要找的东西。
有相当多的示例需要创建新实例,或者只有不返回任何内容的函数(这意味着可以通过返回 this 来解决问题)。
我希望下面的例子能很好地说明我的观点:
// Say I have these functions
function aNumber(){
var max = 100, min = 0;
return (Math.floor(Math.random() * (max - min + 1)) + min);
}
function divideBy(_number, _divider){
return (_number / _divider);
}
function multiplyBy(_number, _multi){
return (_number * _multi);
}
function add(_number, _add){
return (_number + _add);
}
function subtract(_number, _sub){
return (_number - _sub);
}
// #########################################################
// I can do this with them
var test = aNumber();
test = divideBy(aNumber, 2);
test = add(aNumber, 5);
test = multiplyBy(aNumber, 3);
test = subtract(aNumber, 10);
// I would like to do this however:
var test = aNumber().divideBy(2).add(5).multiplyBy(3).subtract(10);
使最后一行工作的最有效方法是什么?
我是不是误会了,如果不创建某个东西的新实例就可以做到这一点?
【问题讨论】:
-
创建新实例没有错,不知道为什么要避免这种情况?
标签: javascript chaining