读prototype-1.4.0的疑问???

yuanye2008 2006-04-24 11:54:09
刚开始学习javascript,请多指教!
prototype-1.4.0中的Enumerable.js中

var Enumerable = {
each: function(iterator) {
var index = 0;
try {
this._each(function(value) {
try {
iterator(value, index++);
} catch (e) {
if (e != $continue) throw e;
}
});
} catch (e) {
if (e != $break) throw e;
}
}
}

Object.extend(Array.prototype, Enumerable);
Enumerable对象本身并没有函数_each,但是继承它的Array对象有该函数。
因为使用each函数的对象是Array,
所以将Array的_each直接用于在Enumerable中,这种方式有什么好处?

我觉得它降低了程序的可读性,必须要阅读Array.js代码,才能理解 Enumerable.js !
这是解释性语言的优点吗?
...全文
191 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bslayer 2006-08-04
  • 打赏
  • 举报
回复
由于_each()的问题,Enumerable不能被直接使用,所以可以把它理解成一个抽象类
其中有个抽象方法_each()
该方法被具体化的类Array实现,
这样就符合OOP了,典型的多态的实现
yuanye2008 2006-04-25
  • 打赏
  • 举报
回复
我觉得这个并不符合oop的思想!
1、它增加了对象间的依赖!
2、在父类中调用子类的方法

这都是不符合00P思想的!
meizz 2006-04-25
  • 打赏
  • 举报
回复
先看看OOP,面向对象的编程
  • 打赏
  • 举报
回复
简洁吧这样
yuanye2008 2006-04-24
  • 打赏
  • 举报
回复
up
yuanye2008 2006-04-24
  • 打赏
  • 举报
回复
up
yuanye2008 2006-04-24
  • 打赏
  • 举报
回复
up

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧