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学习从简单开始:元素定位与DOM操作 #### 引言 随着Web开发的不断进化,Ajax技术成为提升用户体验的重要工具。Prototype.js作为一款轻量级的JavaScript框架,以其简洁的API和广泛的适用性,成为了...
### 类之Prototype.js学习 #### 1. 类的创建与理解 在JavaScript中,通过`prototype.js`框架创建类变得更加直观且易于管理。下面将详细解释如何使用此框架创建类。 - **创建类:** - 使用`Class.create()`方法...
通过学习和使用prototype.js,开发者可以编写出结构更清晰、可维护性更强的JavaScript代码,同时也能提高开发效率,减少跨浏览器兼容性的烦恼。然而,随着ES6及后续版本的推出,许多prototype.js的功能已被原生...
《prototype.js:JavaScript框架的核心与应用》 在Web开发领域,JavaScript库和框架极大地提高了开发效率,其中Prototype.js就是一款非常流行的开源JavaScript框架。本文将深入探讨Prototype.js的核心概念、功能...
学习Prototype.js不仅能够提升JavaScript编程的效率,还能深入理解JavaScript的原型机制,这对于从事前端开发的工程师来说是必不可少的知识。通过这个压缩包,我们可以研究每个版本的变化,理解其设计理念,为自己的...
**prototype.js 文件详解** 在JavaScript中,`prototype`是一个核心概念,它关乎对象的继承机制。...记得结合`prototype.js`开发手册,深入学习并熟练掌握其各种用法,提升你的JavaScript开发技能。
**Prototype.js 1.6 知识点详解** Prototype.js 是一个开源的JavaScript库,它扩展了JavaScript语言,为开发者提供..."prototypeAPI"这个文件可能包含了Prototype.js的API参考文档,是学习和查阅该库功能的重要资源。
Prototype.js 是一个 JavaScript 库,它的主要目标是增强和扩展JavaScript的基本功能,使其更适合开发复杂的Web应用程序。在本文中,我们将深入探讨Prototype.js的核心概念、关键功能和改进,特别是集中在1.3.1版本...
**JavaScript原型(Prototype)库详解** JavaScript是一种动态类型的编程语言...不过要注意,随着现代前端框架的兴起,像React、Vue、Angular等,Prototype.js的使用逐渐减少,但它的设计理念和模式仍然值得学习和借鉴。
通过学习和使用Prototype.js,开发者可以大大提高JavaScript编程的效率,同时享受到其带来的强大功能和便利性。《prototype.js中文手册》是深入理解并掌握这个库的宝贵资源,涵盖了从基础到高级的各种知识点,对于...
通过学习《prototype.js 1.4版开发者手册》,开发者可以掌握这些高级技巧,提高开发效率,编写出更加优雅和高效的JavaScript代码。同时,分享这份手册也是促进社区交流和共同进步的好方式,因为学习从来不是孤立的...
prototype.js 是Sam Stephenson写的一个Javascript的小框架(实际上是一个函数... prototype.js不仅是一个有很大实用价值的js库,而且有很高的学习价值。 -------------------- 英文手册是v1.6 chm 中文手册是v1.4 pdf
Prototype.js是最早期的JavaScript框架之一,它的设计目标是增强JavaScript的基本功能,使得JavaScript的面向对象编程更加简洁和强大。Prototype的核心特性包括: 1. **对象扩展**:Prototype通过扩展JavaScript的...
Prototype.js是一款强大的JavaScript库,由Sam Stephenson开发,旨在简化JavaScript的编程,提供了一系列实用的函数和类扩展,增强了JavaScript的基本功能。这款库的核心理念是通过类原型(Class Prototyping)实现...
《Prototype.js:构建富客户端页面的关键工具》 Prototype.js 是一个强大的JavaScript类库,它为开发者提供...通过学习和掌握Prototype.js,开发者可以更好地应对复杂的前端项目,打造更具交互性和用户体验的Web应用。
总的来说,Prototype.js 1.6.0.3 是一个强大的JavaScript库,它的中文CHM帮助文档则为开发者提供了全面的学习材料。无论你是想了解基本的JavaScript扩展,还是深入到高级的类系统和Ajax应用,这个资源包都能满足你的...
《Prototype开发应用手册:深入解析与实践》 Prototype是一个强大的JavaScript库,由Sam Stephenson创建,旨在提升...通过学习和掌握Prototype,开发者可以更好地驾驭JavaScript,创造出更具交互性的Web应用。
学习Prototype.js不仅可以提升JavaScript编程的效率,还能帮助开发者理解JavaScript的原型继承机制。实践中,可以尝试用Prototype.js重构一些传统的JavaScript代码,体验其带来的便利。同时,结合实际的网页应用,...