2013-06-04

JavaScript 类/函数继承最佳实践

Views: 18637 | Add Comments

JavaScript 没有像 Java 等面向对象语言的 class 关键字用法, 和 class 最像的就是 function 了. 下面的代码相当于在 JavaScript 中定义了一个类:

function Base(arg){
    var self = this;
    self.base = 1;
    self.name = 'base';
}

如果想新定义一个类 Child 继承 Base, 怎么办? JavaScript 又没有 extends. 这时, 就要利用到 prototype 了.

function Child(arg){
    var self = this;
    self.name = 'child';
}

// 继承在这里发生了!
Child.prototype = new Base();
Child.prototype.constructor = Child;

这时, 使用 Child 类就没有什么特殊的了:

var child = new Child();
alert(child.base + ', ' + child.name); // 1, child

你还可以封装一下:

function class_extend(child, base){
    child.prototype = new base();
    child.prototype.constructor = child;
}
class_extend(Child, Base);

Related posts:

  1. JavaScript+CSS实现数据表格条纹
  2. JavaScript+jQuery两栏选择控件
  3. 消除JavaScript闭包的一般方法
  4. JavaScript 设置浏览器标题闪动
  5. jQuery延时绑定事件(lazy-bind)
Posted by ideawu at 2013-06-04 11:05:14 Tags: ,

Leave a Comment