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");
}
分享到:
相关推荐
类之Prototype.js学习
prototype.js 是Sam Stephenson写的一个Javascript的小框架(实际上是一个函数... prototype.js不仅是一个有很大实用价值的js库,而且有很高的学习价值。 -------------------- 英文手册是v1.6 chm 中文手册是v1.4 pdf
prototype.js ajax,javascript框架学习
prototype.js不仅是一个有很大实用价值的js库,而且有很高的学习价值。 --- 在prototype.js中,prototype对象是实现面向对象的一个重要机制。 每个函数就是一个对象(Function),函数对象都有一个子对象 ...
万一你没有使用过大名鼎鼎的prototype.js,那么让我来告诉你,prototype.js是由Sam Stephenson写的一个javascript类库。这个构思奇妙,而且兼容标准的类库,能帮助你轻松建立有高度互动的web2.0特性的富客户端...
开发者网站: http://prototype.conio.net/ prototype学习资料包括: prototype14参考 prototype 1.3 源码解读.txt prototype 1.5 参考图 prototype 1.5pre1.js prototype 1.4.js
prototype.js不仅是一个有很大实用价值的js库,而且有很高的学习价值。 --- 在prototype.js中,prototype对象是实现面向对象的一个重要机制。 每个函数就是一个对象(Function),函数对象都有一个子对象 ...
网上找的一些prototype.js学习资料
prototype.js 是一个由Sam Stephenson写的JavaScript包。这个构思奇妙编写良好的一段兼容标准的一段代码将承担创造胖客户端, 高交互性WEB应用程序的重担。轻松加入Web 2.0特性。 如果你最近体验了这个程序包,你很...
prototype.js是一个非常优雅的javascript基础类库,对javascript做了大量的扩展,而且很好的支持Ajax,国外有多个基于此类库实现的效果库,也做得很棒。 prototype.js不仅是一个有很大实用价值的js库,而且有很高的...
基础性的介绍和应用实例讲解
prototype.js是一个非常优雅的javascript基础类库,对javascript做了大量的扩展,而且很好的支持Ajax,国外有多个基于此类库实现的效果库,也做得很棒。 prototype.js不仅是一个有很大实用价值的js库,而且有很高...
学习!与大家一起分享
API 参考 欢迎使用 Prototype API 参考手册。...这份 API 文档只是一份参考手册,如果你想要学习如何使用 Prototype,或者想熟悉 Prototype 的某些特性,请参考教程。 非常高兴能够制作这份文档!
或许你还没有用过它, prototype.js 是一个由Sam Stephenson写的JavaScript包。这个构思奇妙编写良好的一段兼容标准的一段代码将承担创造胖客户端, 高交互性WEB应用程序的重担。轻松加入Web 2.0特性。 <br...
prototype.js不仅是一个有很大实用价值的js库,而且有很高的学习价值。 --- 在prototype.js中,prototype对象是实现面向对象的一个重要机制。 每个函数(Function)就是一个对象,函数对象都有一...