zoukankan      html  css  js  c++  java
  • [Object]面向对象编程(自己总结版)



    2014-06-06 面向对象编程
    感受:原理javascript也可以用完全面向对象的方式编程,兴奋得一个晚上都没睡好觉。
    有种越深入越想编程的状态,有种上瘾的快感。

    1,面向对象方式编程

    Js代码  收藏代码
    1. function Aa(){  
    2.     //属性设置  
    3.     this.property1:value1,//例如this.nameinput = $("input['name'=name]");  
    4.     this.property2:value2,  
    5.     this.property3:value3,  
    6. }  
    7. Aa.prototype.init=function(){  
    8.     //初始化,比如是否隐藏  
    9. }  
    10. //方法设置  
    11. Aa.prototype.method1=function(){  
    12. }  
    13. Aa.prototype.method2=function(){  
    14. }  
    15. Aa.prototype.method3=function(){  
    16. }  



    2,继承

    Js代码  收藏代码
    1. function Bb(){  
    2. }  
    3. Bb.prototype = new Aa();  
    4.   
    5. function Cc(){  
    6. }  
    7. Cc.prototype = new Aa();  










    #2013-08-28  第三次总结
    主要是看了《高级程序设计》,发现很多培训机构不过先看书,再讲出来,讲的大多只是概念,没有实用价值(实际工作会比这个复杂,如果只会这些还是写不出优秀的代码,所以只能先再另看优秀的代码,然后在自己写了)。
    一、引用类型
    基本数据类型是复制,符合数据类型是引用。所有参数传递都是复制。
    所以,对象都是引用


    二、作用域链、闭包、匿名函数
    1,作用域链
    2,闭包及this作用域
    (1)基本用法
    (2)可能面临的问题及如何解决
    原因:作用域链
    (3)内存泄露
    3,模仿块级作用域




    三、类、对象、继承
    1,类(Function)和对象
    私有变量,私有方法:直接在Function内部通过var定义变量,function innerXX(){}定义方法都是私有变量和私有方法。

    共有变量,共有方法:
    (1)通过this.property1和this.method1
    (2)通过prototype定义方法

    静态变量,静态方法:


    2,继承
    使用Call+prototype。call继承共有变量,prototype继承共有方法。














    #2013-08-27  第二次总结
    面向对象方式,可以把JS做成框架。
    原来JS也可以写得很复杂,功能很强大,甚至写成框架。
    在面向对象方式编程中,一切皆对象。

    Js代码  收藏代码
    1. var Obj = {};  
    2. Obj.base = {  
    3.     base1:function(){  
    4.     },  
    5.     base2:function(){  
    6.     }  
    7. };  
    8. Obj.tool = {  
    9.     tool1:function(){  
    10.     },  
    11.     tool2:function(){  
    12.     }  
    13. };  
    14. function MainEntrance(param){  
    15.     this.init(param);  
    16. }  
    17.   
    18. $.extend.(MainEntrance.prototype, {  
    19.     init:function(){  
    20.         this.a = a;  
    21.         this.b = b;  
    22.     },  
    23.     bindEvents:function(){  
    24.         Events.event1();  
    25.         Events.event2();  
    26.     }  
    27. });  
    28. var Events = {  
    29.     event1:function(){  
    30.     },  
    31.     event2:function(){  
    32.     }  
    33. };  
    34. //再最后调用  
    35. Obj.init();  
    36. events.event1();  





    #2013-03-20  第一次总结
    对于一个对象,如:

    Js代码  收藏代码
      1. var globalObj = {  
      2.     func1 : function(){  
      3.         //post,get  
      4.     }  
      5. };  
      6. //执行的方式可以是:(目的是同时渲染多个页面)  
      7. (function(pageName){  
      8. var globalObj = {  
      9.     func1 : function(){  
      10.         //1,post,get方式异步获取数据,以渲染页面  
      11.         //2,php变量获取数据,渲染页面(不体现在这里)  
      12.         //3,初始化监听事件,常见如click等  
      13.     }  
      14. };  
      15. globalObj [pageName]&&$(globalObj [pageName]);  
      16. })(pageName); 
  • 相关阅读:
    动态规划突破
    日志如何进行处理
    多线程相关问题
    Activity工作流框架
    修改模块
    spring多模块搭建Eureka服务器端
    springcould多模块搭建Eureka的服务器端口
    java操作elecsearch
    在elementui和MyBatis中前后端分离中使用shiro
    elementui的和前后端分离的微信登陆功能
  • 原文地址:https://www.cnblogs.com/shsgl/p/4289848.html
Copyright © 2011-2022 走看看