BUI基础-类的创建和继承

类的创建

BUI里的所有类的方法都在原型链上,这决定了创建类和继承类的方式。关于类的定义和实例化请参看w3school的文章

下面是一个BUI中创建的最简单的类,其中的细节我们在本章和接下来的几章里详细论述

上面的内容包含了以下信息:

  • 声明一个类,在构造函数中调用父类的构造函数
  • superclass:指向父类
  • BUI.extend方法,实现了继承,下面会详细讲解
  • BUI.augment : 将对象上的成员复制到类的原型链上,如上代码参数2对象中的成员方法将会复制到NewClass的原型链上面去

类的继承

BUI的类的继承使用原型链的方式,提供了BUI.extend方法,具体的实现原理请参看:JS 继承

我们通过下面的示例,来了解BUI.extend方法的使用

解释说明

  • BUI.mix : 把一个对象的成员复制到另一个对象
  • 构造函数里面需要调用父类的构造函数,由于javascript缺少原生的支持,所以需要自己调用
  • 原型链上的方法会覆盖,子类的方法覆盖父类的方法
  • 调用父类的同名方法时,直接调用父类prototype上的方法,而不要通过superclass,在这篇文章里有论述

类的多继承

javascript不支持多继承,BUI.extend方法只能指定一个类作为superclass,所以为了实现多继承我们引入了一个新的方法BUI.mixin,这个方法可以将多个类的原型链上的方法复制到需要继承的类上

我们把mixin的方式叫做扩展,可以通过多个类扩展自己的方法,这里有扩展的更加详细的介绍

继承的相关函数

上面的示例中用到了几个继承中常用的函数:

  • BUI.extend(newclass,superclass): 实现类的继承
  • BUI.augment(newclass,obj): 把对象的成员复制到类的原型链上
  • BUI.mix(obj1,obj2,...objn): 把后面对象的成员复制到第一个,封装 jQuery.extend 方法,将多个对象的属性merge到第一个对象中
  • BUI.merge(obj1,obj2..objn): 把所有对象的成员复制到一个新的对象上,不影响参数中的对象

上面方法详细的API,请查看BUI的工具方法

下一步学习

恭喜您,相信您已经对BUI的类的创建和继承有一定的了解了,那么接下来需要了解的是配置和属性、方法和事件,再去学习CMD组织模块,然后进入到BUI控件编写的学习中。

你可能感兴趣的:(BUI基础-类的创建和继承)