首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JavaScript-创办可重用代码

2012-11-10 
JavaScript----创建可重用代码1.1、原型式继承JavaScript对象的创建与继承使用了一套特别的模式,称为原型式

JavaScript----创建可重用代码
1.1、原型式继承
    JavaScript对象的创建与继承使用了一套特别的模式,称为原型式继承。这种方法的原理是,对象的构造函数可以从其他对象中继承方法,它创建出一个原型对象后,所有其他的新对象都可以基于这个原型对象来构建。
    整个过程都是通过原型属性(prototype)来实现的(这是每个函数都有的一个属性,用作构造函数的函数自然也会有这个属性)。原型式继承的设计适用于单继承而非多继承。原型本身并不会从其他原型或者构造函数中继承属性,而属性都是从实际对象那里继承过来的。例


1.3 Base库
    Base库提供了一套比较直观的对象继承方法。
    下面体验一下Base一下重要的方面,它们对开发很有帮助。一个创建对象、单父对象继承和覆盖父类方法的例子。

    Base.extend(...):这个函数用于创建新的基本构造函数对象。这个函数接受的唯一参数是包含属性和值的简单对象,对象中的所有这些属性和值都被添加到要生成的对象里,作为其原型方法。
    Person.extend(...):这是Base.extend()语法风格的另一个版本,因为所有的构造函数都使用过.extend()方法来获得它们自身的.extend()方法,所以你也可以直接继承它们。上面例子就是通过直接继承原始Person构造函数的方法来创建User构造函数的。
    this.base();最后这个this.base()方法用来调用一个已被重载的父类方法。可以看到,这和Crockford的类式库提供的this.uber()函数很不一样,你不需要指定父类方法的名字。
1.4 Prototype库
    Pprototype的辅助函数,用于创建类、实现简单继承
<script type="text/javascript">//创建一个名叫'Class'的全局对象var Class = {//它只有一个函数,其作用是创建一个新的对象构造函数create : function(){//创建一个匿名的对象构造函数return function(){//调用它本身的初始化方法this.initialize.apply(this, arguments);};}}//给Object对象添加一个新的静态方法,//它的作用是把属性从一个对象复制到另一个中Object.extend = function(destination, source){//遍历所有要扩展的属性for(property in source){//然后将他们添加到目标对象中destination[property] = source[property];}//返回修改后的对象return destination;}//创建一个新的构造函数为空的Person对象var Person = Class.create();//将下面的函数复制到Person的prototype中Object.extend(Person.prototype, {//这个函数由Person构造函数立即调用initialize : function(name){this.name = name;},//Person对象的简单函数getName : function(){return this.name;}});//创建一个新的构造函数为空的User对象var User = Class.create();//User对象继承了所有父类的函数User.prototype = Object.extend(new Person(), {//将旧的初始化函数重载为新的initialize : function(name, password){this.name = name;this.password = password;},//给这个对象添加一个新的函数getPassword : function(){return this.password;}});var user = new User("王五", "888888");alert(user.getName());alert(user.getPassword());</script>

热点排行
Bad Request.