项目作者: sujeetkv

项目描述 :
Class.js: JavaScript Inheritance
高级语言: JavaScript
项目地址: git://github.com/sujeetkv/class-js.git
创建时间: 2017-04-05T09:38:45Z
项目社区:https://github.com/sujeetkv/class-js

开源协议:MIT License

下载


class-js

Class.js: JavaScript Inheritance

-by Sujeet sujeetkv90@gmail.com

Usage Example:

  1. var BaseClass = createClass({
  2. name: '',
  3. url: '',
  4. /* class constructor */
  5. _init: function (name, url) {
  6. if (name) {
  7. this.name = name;
  8. }
  9. if (url) {
  10. this.url = url;
  11. }
  12. },
  13. getInfo: function () {
  14. return this.name + '- ' + this.url;
  15. }
  16. });
  17. var ChildClass = BaseClass.extend({
  18. /* class constructor */
  19. _init: function (name, url) {
  20. this._super(name, url); /* call overridden method of parent class */
  21. },
  22. alertInfo: function (url) {
  23. alert(this.getInfo());
  24. }
  25. });
  26. var baseClassObj = new BaseClass('Sujeet', 'https://github.com/sujeetkv');
  27. var childClassObj = new ChildClass('Sujeet', 'https://github.com/sujeetkv');

Private class members can also be defined as:

  1. var BaseClass = createClass((function () {
  2. /* private members */
  3. var delim = ': ';
  4. /* public members */
  5. return {
  6. name: '',
  7. url: '',
  8. _init: function (name, url) {
  9. if (name) {
  10. this.name = name;
  11. }
  12. if (url) {
  13. this.url = url;
  14. }
  15. },
  16. getInfo: function () {
  17. return this.name + delim + this.url;
  18. }
  19. };
  20. })());
  21. var ChildClass = BaseClass.extend((function () {
  22. /* private members */
  23. var log = function (val) {
  24. console.log(val);
  25. };
  26. /* public members */
  27. return {
  28. _init: function (name, url) {
  29. this._super(name, url);
  30. },
  31. alertInfo: function () {
  32. alert(this.getInfo());
  33. log(this.getInfo());
  34. }
  35. };
  36. })());