作家
登录

类之Prototype.js学习

作者: 来源:www.28hudong.com 2013-03-30 03:26:10 阅读 我要评论

Prototype.js作为javascript的成功的开源框架,封装了很多好用的功能,虽然官方没提供什么文档,不过在google上一搜,好多相关的文档,不过在学习使用的过程中还是碰到了一些问题,希望熟悉的朋友能多加指点,对于prototype.js学习我关注这么几点,同时针对每点也讲讲学习的结果和碰到的问题,^_^ 1、类的创建 prototype.js已经封装好了,这个很简单。 var Person=Class.create(); 这样就创建了一个Person类,这个Person类必须提供initialize方法的实现: Person.prototype={ initialize:function(){ } }; 对比java,Class.create相当于Class.forName(),initialize相当于构造器,和java的构造器一样,可以自定义为带参数性质的。 可以看到在使用这样的方式定义class后,它和javascript原来的通过function方式来定义一个类就有明确的区分了,在这种情况下我们就可以用Class.create来定义类,用function来直接定义函数。 类通常还涉及静态成员(static性质的)和实例成员(需要实例化才可调用)的定义。 在javascript中这点也非常容易: 静态成员: var Person={ name:'person', getName:function(){return 'person'} }; 实例成员: Person.prototype={ childname:'child', eat:function() } 上面的Person.getName是可以直接这么调用的,但eat方法则需通过var person=new Person();person.eat();的方式来调用。 2、类的继承 类的继承其实javascript本身就支持的,不过prototype提供了一种另外的方法。 按照javascript的支持的实现: var Student=Class.create(); Student.prototype=new Person(); 这样就实现了Student继承至Person。 在使用prototype的情况下可以这么实现: var Student=Class.create(); Object.extend(Student.prototype,Person.prototype); 子类要增加方法时可使用 Student.prototype.study=function(){}; 或 Object.extend(Student.prototype,{ study:function(){} }); 3、事件机制(对类方法执行的监听和观察) 在事件机制上则碰到了一些疑惑,作为事件机制主要需要提供事件的定义,对于事件的监听以及对于事件的观察。 在javascript中事件需要以on开头,也就是作为事件就需要采用onclick这样类似的命名: 对上面的Student增加一个对外的事件,如: Student.prototype.study=function(){ this.onstudy(); } Student.prototype.onstudy=function(){}; 这个onstudy就是交给相应的实例去实现的,例如实例采用这样的方式: function studyThis(){ alert("study this"); } var student=new Student(); student.onstudy=studyThis(); 对于事件通常都希望进行监听和观察,根据prototype提供的bindAsEventListener以及Observe,这么进行了尝试: study.onstudy=watchStudy.bindAsEventListener(this); function watchStudy(event){ alert("watch study"); } 按照事件机制来说,在执行study的时候应该可以看到study this和watch study两个提示,但最后执行后只能看到watch study的提示,这是为什么呢?按照listener的概念的话,不应该覆盖原有方法的,不过我看了一下prototype.js的源代码,按照上面的编写方式确实会照成覆盖原方法。 Observe是这么尝试的: Event.observe(study,'study',watchStudy,false); 按照观察机制来说,应该在执行study的时候会看到两个提示,但最后执行后这行根本就没起到任何作用。 这是为什么呢?

  推荐阅读

  一个漂亮的下拉列表,去掉了灰色倒三角按钮

很漂亮,比较适合女性一类比较温馨的网站 漂亮的下拉框 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]>>>详细阅读


本文标题:类之Prototype.js学习

地址:http://www.17bianji.com/kaifa2/JS/30374.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)