Tag Archives: JavaScript

JavaScript: 死或新生

原作:JavaScript is Dead. Long Live JavaScript! 翻译: Belleve Invis 此翻译非直译,可能有部分内容省略,为交流用。如有错漏请回复。 序 十六年来, JavaScript 已经完全占领浏览器。它,见证了网页应用(Web Application)的崛起。尽管其他的脚本语言也能担此重任,然而,命运选择了 JavaScript。尽管微软在数年前就在浏览器里加入了 Basic ,但, JavaScript 因为能在所有浏览器中运行,所以它赢了。因能在所有浏览器中运行,自身的质量又并不差,那些浏览器制造商就没有义务给他们的产品增加新语言。 那些华丽的特性——比如闭包——让她成为我们这些情人眼里的西施。编程圈子里经常有这样的忏悔——“是,我知道,这玩意不怎么样,但是给她个机会,好吗?你会爱上她的。”给这语言推销绝非难事。 JavaScript 被说成一个太早拿出来的实验品,而我们一直戴着有色眼镜。 2007 年, Steve Yegge 说 JavaScript 会“引爆程序圈”,现在看来,是真的。从那时到现在,基于 JavaScript 的网页应用已经变得更复杂、更大型以及更好用。借其力量, Web 仍然保持繁荣,丝毫不让移动 App。 最近, JavaScript 在服务器端成功发力。 Node.js 平台,利用其非阻塞 I/O,有望解决无数程序员多年的积怨。作为 Node.js 的选择, JavaScript 可能会在服务器端完成无数前人没有完成的任务。 总而言之, JavaScript 早已横扫全球。但是,如果浏览器今天从地球上消失,又有多少 JavaScript 代码会在第二天写出来?或许她会一夜之间被打入冷宫。幸而,浏览器不会消失,而且还会存活很多年。 随着开发规模的膨胀,那些缺陷逐渐显现,日复一日戳痛开发人员的心。你会觉得奇怪,为什么我写 JavaScript 那么多年我还不是 JavaScript 教教徒,我写的绝大多数 [...]

Posted in Browser, Discussion, Translation, 中文 | Also tagged , | 4 Comments

ECMA V5时代后,我们能玩的东西

当V5正式降临的时候,我们能玩的就多了。看看吧:

Posted in Browser, 中文 | Also tagged , | Leave a comment

Lofn的变量系统

lofn 现在已经上线,rednaxelafx 还给我做采访讨论lofn。和 CoffeeScript 不同,lofn 并没有把 lofn 源码转换成“完全”等价的 JavaScript 源码——虽然 lofn 的对象系统就是 JavaScript 的,但 lofn 的变量系统不是。

Posted in Browser, Original | Also tagged , , , , | 1 Comment

“resend in Self”, on JavaScript ECMA-v5

Self中resend是调用“基类方法”的原语,它会把当前接收到的消息原样发送给其原型(parent*)。在ECMA-v5时代,我们终于可以做出这个伟大的东西了。 ECMA V5定义了一个期待已久的方法:Object.getPrototypeOf,它可以无视型别信息得到某对象的原型([[prototype]]),基于此,我们可以构造出一个resend:(请用Chrome 5、IE9预览第三版测试) obj.resend = function() { var pof = Object.getPrototypeOf; var has = function() {……} // hasOwnProperty的封装 var make = function(obj, old) { return function(name, args) { var step = pof(obj), r; while (step && !has(step, name)) step = pof(step); if (!step) throw new Error(‘Unable to resend: method missing’); var foundMethod = step[name]; var backup = arguments.callee; this.resend [...]

Posted in Browser, 中文 | Also tagged , , , , | Leave a comment