梦想天空
关注前端开发技术 ◆ 分享网页设计资源 ◆ 推动
HTML5
技术发展 ◆
jizhula.com
你记住了吗:)
博客园
首页
新闻
联系
管理
订阅
随笔- 855 文章- 1 评论- 6425
Javasccript学习进阶——科里化(Currying)
Code
//
这是一个计算x+y的函数,但是它和常规函数的不同之处在于
//
它是被Currying的
function
add(x, y)
{
//
当x,y都有值得时候,计算并返回x+y的值
if
(x
!=
null
&&
y
!=
null
)
return
x
+
y;
//
否则,若x有值y没有值
else
if
(x
!=
null
&&
y
==
null
)
return
function
(y)
{
//
返回一个等待y参数进行后续计算的闭包
return
x
+
y;
}
//
若x没有值y有值
else
if
(x
==
null
&&
y
!=
null
)
return
function
(x)
{
//
返回一个等待x参数进行后续计算的闭包
return
x
+
y;
}
}
//
计算add(3,4)的值,得到3+4的结果7
var
a
=
add(
3
,
4
);
//
计算add(2)的值,得到一个相当于求2+y的函数
var
b
=
add(
2
);
//
继续传入y的值10,得到2+10的结果12
var
c
=
b(
10
);
posted @
2008-08-31 12:05
梦想天空(山边小溪)
阅读(382) 评论(
0
)
编辑
收藏
刷新评论
刷新页面
返回顶部
程序员问答社区,解决您的IT难题
博客园首页
博问
新闻
闪存
程序员招聘
知识库
公告