WEB开发网
开发学院网页设计JavaScript 关于prototype.js的一些技术说明 阅读

关于prototype.js的一些技术说明

 2010-09-14 13:11:41 来源:WEB开发网   
核心提示:本文是转载,关于prototype.js的一些技术说明说明,关于prototype.js的一些技术说明,比如关于javascript的apply和call函数,关于闭包,prototype.js的作者对extend的使用炉火纯青,如果我们不当它只是个属性拷贝的函数的话,关于函数的绑定,关于事件的注册

本文是转载,关于prototype.js的一些技术说明说明,比如关于javascript的apply和call函数,关于闭包,关于函数的绑定,关于事件的注册,关于事件监听最佳实践等等,很难得的一篇文章,从dnew.cn转载而来。

关于闭包

prototype.js在Class.create,bind等中用到javascript的闭包特色。但整体上prototype.js对于强大的闭包特性用的不多。大家可以参阅我翻译的篇文章了解闭包。

3、让我比较反感的两个方法

(1)

var Class = {
 create: function() {
  return function() {
   this.initialize.apply(this, arguments);
  }
 }
}

很讨厌用别的语言的风格来写javascript。用这个方法构造自定义类 并没有觉得有多方便,减少代码行数,只会让人难理解,多定义一个initialize方法。

其实讨厌这条有些牵强,不过修改Object的原型对象就有点过分了。

(2)Object.prototype.extend

先不过你取个extend的名字会让熟悉java的人引起的歧义。修改Object的prototype就说不过去了。不知道作者是怎么考虑的。当你for in循环对象是,麻烦就来了。可能有人会问你for in干吗。 我一个项目中既用了DWR,也用了prototype.js,dwr返回的javascript对象都多了个exetend属性,还得特殊处理。

以前我比较过dojo和prototype.js中继承的实现,现在我明白个道理。对于javascript这种没有静态类型检查,语法宽松的语言来讲,如果你选择了某个js类库,那你也必须适应作者写javascript的风格。prototype.js的作者对extend的使用炉火纯青,如果我们不当它只是个属性拷贝的函数的话,多读读prototype.js的代码是好的。

关于事件的注册

1 2 3 4  下一页

Tags:关于 prototype js

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接