1
Septembers 2015 年 6 月 5 日
递归
|
2
learnshare 2015 年 6 月 5 日
用来模拟函数重载。
|
3
zythum 2015 年 6 月 5 日
模拟一个多态... fn.length 是这个方法行参的个数.
|
4
FrankFang128 2015 年 6 月 5 日
不用学了,你懂 apply 和 arguments 怎样用就行了。
这是把 JS 不当 JS 用,不推荐。 |
5
Hyperion 2015 年 6 月 5 日 via Android
用了一层层容器包裹来实现多态, 每add一次裹一层,参数个数对了就调用,否则就返回下一个。
@FrankFang128 逢小聪明必黑啊,但不了解这个,绝对不是什么好事。 我赌一块,近5年,这种做法还会存在,下一代javascript 的更迭,虽然不会和之前的javascript 统一那样,但也绝对不容易。 |
6
FrankFang128 2015 年 6 月 5 日
@Hyperion 出现这种需求就是因为「我们的程序员只会用 Java / C#,JS 里没有重载他们觉得不可理喻」。
我觉得是因为某些程序员压根就不想学 JS 导致的。当然也无刻厚非。 这也说明了 JS 的灵活性。 不过初学者上来就学这个,很容易迷惑,说 JS 怎么这么烂,重载还要自己实现。 |
7
Hyperion 2015 年 6 月 5 日 via Android
|
8
Hyperion 2015 年 6 月 5 日 via Android
|
9
zythum 2015 年 6 月 5 日
|
14
Septembers 2015 年 6 月 5 日
@FrankFang128 fp 的一个非常重要的概念是 幕等
|
15
FrankFang128 2015 年 6 月 5 日
@Hyperion 2 楼已经给了正确答案了,所以我只是补充一下 :)
|
16
chairuosen 2015 年 6 月 5 日
@zythum 原来你也在这里。。。我是上周打电话问顶导的那个。。^_^
|
17
zythum 2015 年 6 月 5 日
@chairuosen 艸 ...能不谈公司的事情么....
|
18
nilennoct 2015 年 6 月 5 日
ninja.whatever = function(options) {
options = options || {}; var a = options.a, b = options.b; console.log(a, b); } |
19
learnshare 2015 年 6 月 5 日
其实 TypeScript 也有类似的功能: http://www.typescriptlang.org/Handbook#functions-overloads 不过 TypeScript 又完全是另一回事了。
|
20
Hyperion 2015 年 6 月 5 日 via Android
@FrankFang128 求同存异😗
|