首页 > 语言 > JavaScript > 正文

JavaScript类继承及实例化的方法

2024-05-06 16:23:41
字体:
来源:转载
供稿:网友

这篇文章主要介绍了JavaScript类继承及实例化的方法,较为详细的分析了javascript扩展类、实例化类及类对象与成员函数的使用技巧,需要的朋友可以参考下

本文实例讲述了JavaScript类继承及实例化的方法。分享给大家供大家参考。具体如下:

 

 
  1. (function(){ 
  2. var Class = { 
  3. //扩展类 
  4. create: function(aBaseClass, aClassDefine){ 
  5. var $class = function(){ 
  6. for(var member in aClassDefine){ 
  7. this[member] = aClassDefine[member]; 
  8. if('undefined'===typeof aClassDefine.initialize){ 
  9. this.initialize = function(){}; 
  10. }; 
  11. if('function' ===typeof aBaseClass){  
  12. $class.prototype = new aBaseClass();  
  13. }else if('object' ===typeof aBaseClass){ 
  14. $class.prototype = aBaseClass; 
  15. }  
  16. return $class
  17. }, 
  18. //实例化类 
  19. newfunction(jclass,args){ 
  20. var jclass = new jclass(); 
  21. if(jclass.initialize){ 
  22. jclass.initialize.apply(jclass, args); 
  23. return jclass; 
  24. }; 
  25. //export 
  26. window.Class = Class; 
  27. })(); 

示例:

 

 
  1. //基类对象或函数 
  2. var obj = { 
  3. name: 'BaseName'
  4. init: function(){ 
  5. //...  
  6. }, 
  7. //... 
  8. }; 
  9. var fun = function(){ 
  10. this.name = ''
  11. var init = function(){ 
  12. //.. . 
  13. }; 
  14. var getName = function(){ 
  15. return this.name; 
  16. }, 
  17. var setName = function(name){ 
  18. this.name = name; 
  19. return this;//链式操作支持 
  20. }, 
  21. //... 
  22. }; 
  23. //从Object继承 
  24. var class_frome_obj = Class.create(obj,{ 
  25. initialize: function(){ 
  26. //构造函数 
  27. }, 
  28. getName: function(){ 
  29. return this.name; 
  30. }, 
  31. setName: function(name){ 
  32. this.name = name; 
  33. return this;//链式操作支持 
  34. }, 
  35. //... 
  36. }); 
  37. //从Function继承 
  38. var class_frome_fun = Class.create(fun,{ 
  39. initialize: function(){ 
  40. //构造函数 
  41. }, 
  42. //... 
  43. }); 
  44. //从空对生成基类 
  45. var class_frome_base = Class.create({},{ 
  46. initialize: function(){ 
  47. //构造函数 
  48. }, 
  49. //... 
  50. }); 
  51. //实例化 
  52. var get_class_frome_obj = Class.new(class_frome_obj,[arg1,arg2,...]); 
  53. var get_class_frome_fun = Class.new(class_frome_fun,[arg1,arg2,...]); 
  54. var name1 = get_class_frome_obj.getName(); 
  55. //console.log(name1);//BaseName 
  56. var name2 = get_class_frome_obj.setName('NewName').getName(); 
  57. //console.log(name2);//NewName 

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

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

图片精选