- 浏览: 3022049 次
- 性别:
- 来自: 海外
文章分类
- 全部博客 (430)
- Programming Languages (23)
- Compiler (20)
- Virtual Machine (57)
- Garbage Collection (4)
- HotSpot VM (26)
- Mono (2)
- SSCLI Rotor (1)
- Harmony (0)
- DLR (19)
- Ruby (28)
- C# (38)
- F# (3)
- Haskell (0)
- Scheme (1)
- Regular Expression (5)
- Python (4)
- ECMAScript (2)
- JavaScript (18)
- ActionScript (7)
- Squirrel (2)
- C (6)
- C++ (10)
- D (2)
- .NET (13)
- Java (86)
- Scala (1)
- Groovy (3)
- Optimization (6)
- Data Structure and Algorithm (3)
- Books (4)
- WPF (1)
- Game Engines (7)
- 吉里吉里 (12)
- UML (1)
- Reverse Engineering (11)
- NSIS (4)
- Utilities (3)
- Design Patterns (1)
- Visual Studio (9)
- Windows 7 (3)
- x86 Assembler (1)
- Android (2)
- School Assignment / Test (6)
- Anti-virus (1)
- REST (1)
- Profiling (1)
- misc (39)
- NetOA (12)
- rant (6)
- anime (5)
- Links (12)
- CLR (7)
- GC (1)
- OpenJDK (2)
- JVM (4)
- KVM (0)
- Rhino (1)
- LINQ (2)
- JScript (0)
- Nashorn (0)
- Dalvik (1)
- DTrace (0)
- LLVM (0)
- MSIL (0)
最新评论
-
mldxs:
虽然很多还是看不懂,写的很好!
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 -
HanyuKing:
Java的多维数组 -
funnyone:
Java 8的default method与method resolution -
ljs_nogard:
Xamarin workbook - .Net Core 中不 ...
LINQ的恶搞…… -
txm119161336:
allocatestlye1 顺序为 // Fields o ...
最近做的两次Java/JVM分享的概要
Douglas Crockford的JavaScript专题站
光是这个专题站里的链接就够看好段时间了.很多都很有趣,其中我比较有爱的是这篇:
Curried JavaScript functions
里面有些有趣的例子.例如这个:
如果是有读过我前面几篇blog文的人,或许会见到我经常用这个例子:
其实做的就是currying,把本来应该一般常识是接受两个参数(lhs和rhs)的add变成只接受一个(rhs)的并将函数(这里是指那个匿名函数)返回.不过具体"形式"与currying不一样.前面引用的那段代码就是真正写成currying形式的版本.
那篇文章也给出了泛用版的curry函数:
相当有趣.详细还是到原文去看吧~
光是这个专题站里的链接就够看好段时间了.很多都很有趣,其中我比较有爱的是这篇:
Curried JavaScript functions
里面有些有趣的例子.例如这个:
引用
function add(a, b) { if (arguments.length < 1) { return add; } else if (arguments.length < 2) { return function(c) { return a + c } } else { return a + b; } }
如果是有读过我前面几篇blog文的人,或许会见到我经常用这个例子:
function add( lhs ) { return function ( rhs ) { return lhs + rhs } }
其实做的就是currying,把本来应该一般常识是接受两个参数(lhs和rhs)的add变成只接受一个(rhs)的并将函数(这里是指那个匿名函数)返回.不过具体"形式"与currying不一样.前面引用的那段代码就是真正写成currying形式的版本.
那篇文章也给出了泛用版的curry函数:
引用
function curry(func,args,space) { var n = func.length - args.length; //arguments still to come var sa = Array.prototype.slice.apply(args); // saved accumulator array function accumulator(moreArgs,sa,n) { var saPrev = sa.slice(0); // to reset var nPrev = n; // to reset for(var i=0;i<moreArgs.length;i++,n--) { sa[sa.length] = moreArgs[i]; } if ((n-moreArgs.length)<=0) { var res = func.apply(space,sa); // reset vars, so curried function can be applied to new params. sa = saPrev; n = nPrev; return res; } else { return function (){ // arguments are params, so closure bussiness is avoided. return accumulator(arguments,sa.slice(0),n); } } } return accumulator([],sa,n); }
function add (a,b,c){ if (arguments.length < this.add.length) { return curry(this.add,arguments,this); } return a+b+c; } alert(add()(1,2,4)); // 7 alert(add(1)(2)(5)); // 8 alert(add(1)()(2)()(6)); // 9 alert(add(1,2,7,8)); // 10
相当有趣.详细还是到原文去看吧~
评论
1 楼
RednaxelaFX
2007-11-17
JavaScript Source
这名字真够响亮的。一个据说拥有大量可cut-and-paste的JavaScript代码的网站……留待观察
这名字真够响亮的。一个据说拥有大量可cut-and-paste的JavaScript代码的网站……留待观察
发表评论
-
Function.prototype.bind
2013-09-24 18:07 0polyfill http://stackoverflow. ... -
Nashorn各种笔记
2013-07-15 17:03 0http://bits.netbeans.org/netbea ... -
JavaScript global properties are bound by name, not by value
2013-06-04 14:42 0function a() { console.log('a1' ... -
PICs and prototypes
2013-05-30 13:10 0In a lot of the implementations ... -
Nashorn notes
2013-05-28 10:44 0Nashorn NodeVisitor: the same a ... -
Building Blocks of a JavaScript Engine
2013-05-23 00:49 0sketches of my new book "B ... -
读《JavaScript语言精髓与编程实践(第二版)》
2013-05-21 00:32 02008年逛书店的时候偶 ... -
V8与c1visualizer
2011-08-21 21:00 0Subject: [v8-dev] Improved c1vi ... -
Rhino的JavaScript与Java的整合
2011-05-05 14:40 0http://www.mozilla.org/rhino/Sc ... -
this = null的杯具
2011-03-09 17:04 0this不允许赋值? FireFox表示吐槽 Chrome却欣 ... -
简单替换URL中查询字符串的参数值的代码
2010-04-11 17:49 6147刚有个需求是要把URL中query部分的一个指定参数的值替换为 ... -
JägerMonkey的组件介绍
2010-03-16 13:00 0David Mandelin JägerMonkey & ... -
眼见为实——V8的隐藏类与inline cache的例子
2010-03-02 13:42 0src/globals.h // State for inli ... -
JavaScript一些难以优化的地方
2010-03-02 08:54 0arguments with eval -
JägerMonkey与Carakan动态更新
2010-02-28 22:08 2981今天读了几篇与JavaScript引擎相关的帖。三篇关于Moz ... -
Opera的JS引擎,Carakan
2009-12-03 01:47 0Wikipedia 引用Presto is a layout ... -
with的陷阱
2009-11-21 18:41 0让eval()全局作用域执行的方法深入研究 用with(win ... -
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩
2009-10-17 02:52 131460(Disclaimer:如果需要转 ... -
再谈Google V8和Webkit Nitro
2009-08-21 18:11 0JavaScriptCore SquirrelFish -&g ... -
把列表里连续的数字合并到连续范围里
2009-06-07 20:46 3347论文写得快疯了嗯。上来换口气。 刚才看到问答频道的一个问题, ...
相关推荐
8.6 一个链接打开两个地址 8.7 为链接提供下拉菜单 8.8 按钮链接 8.9 弹出鼠标所指的链接地址 8.10 链接的注释 8.11 为超链接同时绑定单击和双击事件 8.12 带链接的滚动字幕 8.13 会跳舞的链接 8.14 检测站点的连接...
8.6 一个链接打开两个地址 8.7 为链接提供下拉菜单 8.8 按钮链接 8.9 弹出鼠标所指的链接地址 8.10 链接的注释 8.11 为超链接同时绑定单击和双击事件 8.12 带链接的滚动字幕 8.13 会跳舞的链接 8.14 检测站点的连接...
Web技术之家文章简介:HTML网页超链接标记学习教程 链接标记的属性 链接是网页页面中最重要的元素之一,是一个网站的灵魂。一个网站是由多个页面组成的,页面之间依靠链接确定相互的导航关系。每一个网页都有...
刚看到一个朋友写的用javascript连接excel数据库的程序,想把它改成access数据库的,就找到了这两篇文章 ------------------------------------------ 这几天费了挺大...
第一部分 了解了Servlect的几个对象 第二部分 学习了jsp网络编程。 第三部分进入了MVC的实战部分。 Redis数据的缓存技术,学习了对数据的基本操作,用java连接Redis数据库。 计算机网络基础,让我了解到了几个基本...
几个月前,抱着《JavaScript 高级程序设计(第三版)》,啃完创建对象,就开始啃起了 继承 ,然而啃完 原型链 就实在是看不下去了,脑子越来越乱,然后就把它扔一边了,继续看后面的。现在利用这个暑假搞懂了这个...
几个小时后,您将了解许多功能性编程文章和教程未能捕获的内容; 应该如何开始将所有这些FP概念连接到应用程序中? 您将学习如何创建功能代码的组合,处理杂质和I / O,以及如何理解许多功能性编程文章和文档中的...
这个日历应该是网页中常见的小功能了,这个也是window下的时间显示器,这篇文章,就来实现下这个效果的小程序版本,哈哈,求个赞~~~这个可以当做小程序学习的一个很好的实例啦,底部有下载链接,有需要的可以下载...
包括但不限于面试、前端进阶、最新资讯、工程化、性能优化、工具资源原创列表可以通过以下链接访问转载文章列表JavaScript文章描述备注CSS文章描述备注性能优化文章描述备注我是如何将网页性能提升5倍的 — 网络...
页面中的内容都进行了介绍,这里就不多说了,由于插件的内容都比较相似,这里就不进行其它的截图了,简单的介绍下,可以显示代码的也没有如下几个部分: •Single post:内容页面 •Page:Page页面 •Home and tags...
1.2.2 PHP擅长的几个领域及产品介绍 5 1.2.3 PHP不适合做什么 6 1.2.4 其他案例 6 1.3 PHP的Hello, world预览 6 1.3.1 第一个PHP程序Hello, world 6 1.3.2 学习PHP应该准备哪些软件 8 1.3.3 相关知识领域的介绍 9 ...
这篇文章会提到非常非常多的学习路线和链接,如果你还在初中级的阶段,不必太担心,可以把这篇文章作为一个进阶的路线图,在未来的时日里朝着这个方向努力就好。我也并非说这篇文章是进阶高级工程师的唯一一条路线,...
它是该项目中跨多种设备的几种JavaScript机器之一: 以及一小部分仅用于归档/演示目的的软件。 要了解有关可对存储库执行的操作的更多信息,请参阅 ,其中包括诸如以下主题: 存储库本身涵盖的主题包括: 执照 是...
<br>Files/ShowFileList.aspx 显示已经添加的文章列表 -----上面几个是后台管理操作的,这个是前台供访客浏览的界面。 ShowFileItems.aspx 把部分信息的标题显示在其它页面 <br>Master.txt 模板文件 ----...
tabIndex 的用处很简单,就是利用tab键遍历页面的表单元素和链接,按照tabindex的大小决定顺序。...根据这篇文章的介绍,W3C DOM与Netscape仅是把tabIndex添加到有限的几个元素上:a, area, button,
下一期文章中将进一步讨论这个对象,现在要知道这是处理所有服务器通信的对象。继续阅读之前,先停 下来想一想:通过 XMLHttpRequest 对象与服务器进行对话的是 JavaScript 技术。这不是一般的应用程 序流,这恰恰是...
Question2Answer 1.6.3 更新日志: •组合的子导航的用户配置文件和帐户/我的最爱网页。...•修正了雪主题的几个小问题。 •所见即所得的编辑器在非javascript或Android浏览器的改进行为。
一个小型演示,演示如何使用javascript实现分离轴定理(SAT)。 这绝不是优化的代码。 取而代之的是,它只是用作指导它们如何工作的指南,可以按原样使用,但是如果性能是一个问题,则可以解决许多问题。 该代码...
calendarPopup 一个弹出日历表格,用以确保输入的日历是按照特定的格式进行输入的,主要特色包括:日历链接,按照需要的方式设定日历的格式,按照需要可以在日期项目间增加分隔符等等功能 MX95982_shortcutIconOB_v1...
一个弹出日历表格,用以确保输入的日历是按照特定的格式进行输入的,主要特色包括:日历链接,按照需要的方式设定日历的格式,按照需要可以在日期项目间增加分隔符等等功能 MX95982_shortcutIconOB_v1 插入.icon图标...