JavaScript 类/函数继承最佳实践
- - idea's blogJavaScript 没有像 Java 等面向对象语言的 class 关键字用法, 和 class 最像的就是 function 了. 下面的代码相当于在 JavaScript 中定义了一个类:. 如果想新定义一个类 Child 继承 Base, 怎么办. JavaScript 又没有 extends.
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_extends(child, base){ child.prototype = new base(); child.prototype.constructor = child; }
你现在看的文章是: JavaScript 类/函数继承最佳实践