实例化一个父类对象没有什么大不了的,不要拘泥于“正统”的oo观念。想想看,在原型继承的时候,你实际上不正是实例化一个父类对象,然后赋值给prototype吗?只是这个并不是一个真正需要的实例,而只是一个“模子”,所以也许你可以不用传给构造函数任何参数。调用“父类”的方法,也并不必然需要实例化一个父类对象。回忆一下调用父类构造函数的过程。在调用之后,你就已经获得了所有的通过父类构造函数初始化的属性和方法。要干什么随便你了。
> javascript中所有的对象都是从object继承下来的,object提供了tostring()的方法,也就是说如果调用alert(objinstance)这样的过程,实际上是调用了alert(objinstance.tostring())的方法,如果没有编写实现,object默认的tostring()都是"object object"这样子的,在许多地方需要重载这个函数的,比如timer,如果我们希望var ins=new timer(5);alert(ins)调用得到的是interval的值5,那么就需要重新编写tostring()方法了
除了tostring,你也可以重写valueof用来给你的对象返回一个原生类型的值,呵呵。
> 长篇累牍的说了一堆废话,终于说玩了大致的想法,其实语言只是一个实现工具,重要的在于设计的思想,不妨可以考虑一下,在biti内部开发一个opensource的project,如果是基于javascript的模型来建立开发平台库,我希望有人可以参与。通过javascript建立一系列基于web ui的控件,目前我在开发过程中也是立足于上述的想法。另外,附上我去年写的类似hotmail的按钮那样的class源程序,暂时还没有使用image preload,希望有人可以帮我修改一下,如果需要可以运行的版本,给我发送email:liuruhong@263.net。另外有空我会写基于javascript的组件编程和多媒体编程部分,再下来就是xml方面了,希望大家共同进步。
语言是工具,有不同的应用目标。设计思想当然可以共通,特别是对象语言。你大可以用js快速开发一个原型(一般意义上的原型,不是前面的技术术语),然后用java, c++作最终成品。至于用js写webui,我要稍微泼一点点冷水,不必太过在意。webui的问题主要不在于js,而在于浏览器本身和其他技术标准。比如mozilla的ui用xul语言来写的。而且许多人认为xbl和htc(都是用js来封装web控件)等不是很好的方向(虽然我一度挺喜欢这两种技术),因为没有很好的正交分解,把样式、js等都混淆了。未来的方向还是要靠w3c这个标准化组织给出。所以用js也不必写很复杂的类结构(毕竟脚本语言是要给人们轻松的),更多精力花在dom和兼容性上吧。