javascript面向对象与封装

来源:互联网 发布:网络金融平台排名 编辑:程序博客网 时间:2024/06/11 03:25
  1. //声明一个javascript对象:  
  2. var a = {};  
  3.   
  4. //声明一个函数对象:  
  5. var a = function(){}  
  6.   
  7. //声明静态对象  
  8. var a = {  
  9.     name : "静态对象",  
  10.     getName : function(){  
  11.         return this.name;  
  12.     }  
  13. };  
  14. alert(a.getName());//外部调用  
  15.   
  16. //函数对象的封装与继承  
  17. function A(name){  
  18.     var id = 'id';//私有属性,不可继承,外部无法调用  
  19.     this.name = name;  
  20.     this.getName = function(){  
  21.         return this.name;  
  22.     }  
  23.     //在公有方法中给属性赋值,有时会出现在函数内部值是有的,但是出了这个  
  24.     //函数以后值就没有了,这种情况需要这么处理:  
  25.     this.setName = function(name){  
  26.         var obj = this;  
  27.         obj.name = name;  
  28.     }  
  29. }  
  30.   
  31. //如何继承  
  32. function B(name){  
  33.     this.base = B;//声明继承  
  34.     this.base(name);//继承构造函数  
  35.       
  36.     //重写方法  
  37.     this.getName = function(){  
  38.         //因为是继承关系,所以可以将父类的属性当做本身的属性来用  
  39.         //如果想调用父类的方法,可以使用base:this.base.getName();  
  40.         return this.name+"__子类";  
  41.     }  
  42.     //子类自己的方法  
  43.     this.alertName = function(){  
  44.         alert(this.name);  
  45.     }  
  46. }  
  47. B.prototype = A;  
  48.   
  49.   
  50. var a = new A('父类');  
  51. //只能调用属性和自身的方法  
  52. alert(a.name);//父类  
  53. alert(a.getName());//父类  
  54.   
  55. var b = new B("子类");  
  56. //可以调用父类的属性、方法和自身的方法  
  57. alert(b.name);//子类  
  58. alert(b.getName);//子类__子类  
  59. b.alertName()//子类  
  60.   
  61. //jquery声明组件  
  62. (function($){  
  63.     $.fn.panel = function(settings){  
  64.         var opts = $.extend({}, $.fn.panel.defaults, settings);  
  65.           
  66.     }  
  67.     $.fn.panel.defaults = {  
  68.         title : '',  
  69.         width : 200,  
  70.         height : 200  
  71.     }  
  72. })(jQuery);  
  73.   
  74. $('#id').panel({//外部调用组件  
  75.     title : '测试面板'  
  76. });  
原创粉丝点击