12 2010 档案

摘要:本文讨论JavaScript中的对象创建运算new。需要说明的是,本文所讨论的“将new()过程分解为多个步骤”,并非一般js开发中的所须技巧,而是在js来构建OOP系统的必要技术。一、JavaScript构造器与构造过程的特点JavaScript中通过以下方式声明和使用构造器:function MyObject() { this.xxx = 1;}MyObject.prototype.yyy = 2;obj1 = new MyObject();obj2 = new MyObject(); 其中xxx与yyy的不同在于:对于obj1和obj2来说,yyy是相同的属性的不同引用,不同对象实例的初 阅读全文
posted @ 2010-12-29 14:57 it江湖 阅读(1510) 评论(0) 推荐(0)
摘要:JavaScript中的原子(Atom)是QoBean中提出的一个重要概念,借鉴自erlang,但具有与后者不同的含义。在QoBean里,Meta(元)与Atom(原子)是一对概念,前者表明执行系统中的最小单位,后者表明数据系统中的最小单位。QoBean约定这两个东西为一切元编程的初始,即最小化的执行系统与数据系统模型。有什么意义呢?没什么意义。这只具备理论上的完整性。为了描述这种完整性,QoBean写了两个相当无厘头的函数:// Atom system// - atom object for datafunction Atom(atom) { return atom || {};}// Me 阅读全文
posted @ 2010-12-25 05:37 it江湖 阅读(185) 评论(0) 推荐(0)
摘要:URL到底应该有多长?我为什么要提这个问题呢?有许多优化指南里都写着:要尽量减小COOKIE、缩短URL,以及尽可能地使用GET请求等等,以便优化WEB页面的请求和装载。但是,这种所谓“尽可能”、“尽量”只是定性的描述,定量的来看,要缩短到多少个字节才算少呢? 就以我们某次首页的改版中,通过http analyzers我看到几个有趣的.js文件的URL,是这样的:https://static.alipay.net/build/js/app/tracker.js?v=083https://static.alipay.net/build/js/home/home.js?t=20101012http 阅读全文
posted @ 2010-12-17 13:06 it江湖 阅读(206) 评论(0) 推荐(0)
摘要:这两天在读kissy的源代码,从一开始我就对它的mix()函数充满了敌意。因为无论从哪个角度来看,那都是一个极其低效的实现。不过深入了解这个框架之后,我对kissy中的新的系统构建的模型产生了兴趣,而这种系统构建的方式,也正是由mix()所带来的。 一、对象系统 我们先了解一下对象系统。在《JavaScript语言精髓与编程实践》中谈到过,面向对象系统有三种对象的继承方式,即原型、类和元类。这三种方式都可以构建大型对象系统。在后续讨论之前,我们在名词概念上做一些强调,所谓“对象系统”,是指由“一组对象构成的系统”,这些对象之间存在或不存在某种联系,但通过一些规则组织起来。所谓“面向对象系统”, 阅读全文
posted @ 2010-12-08 14:28 it江湖 阅读(181) 评论(0) 推荐(0)