首页 > 编程 > JavaScript > 正文

JS仿Base.js实现的继承示例

2019-11-19 16:53:54
字体:
来源:转载
供稿:网友

本文实例讲述了JS仿Base.js实现的继承。分享给大家供大家参考,具体如下:

var Klass = function() {};Klass.extendClass = (function() {  var F = function() {};  return function(C, P) {    F.prototype = P.prototype;    C.prototype = new F();    C.uper = P.prototype;    C.prototype.constructor = C;  };})();Klass.extend = function(props) {  var _slice = Array.prototype.slice;  var Glass = function() {    /*if (Glass.uper && Glass.uper.hasOwnProperty("init")) {      Glass.uper.init.apply(this, _slice.call(arguments))    }*/    if (Glass.prototype.hasOwnProperty("init")) {      Glass.prototype.init.apply(this, _slice.call(arguments));    }  };  Klass.extendClass(Glass, this);  Glass.extend = this.extend;  for (var key in props) {    if (props.hasOwnProperty(key)) {      Glass.prototype[key] = props[key];    }  }  return Glass;};

example:

var A = Klass.extend({    init: function(name) {      this.name = name;      console.log('A constructor is running!');    },    getName: function() {      return this.name;    }});var B = A.extend({    init: function(name) {      this.name = name;      console.log('B constructor is running!');    },    getName: function() {      return this.name;    },    a: 'b'});var C = B.extend({    init: function(name) {      console.log('C constructor is running!');    },    c: 'c',    getName: function() {      var name = C.uper.getName.call(this);      return 'Hi, I/'m' + this.name;    }});var c1 = new C('zlf');console.log(c1.getName());

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表