zoukankan      html  css  js  c++  java
  • js之面向对象----封装篇

    学习了一天的面向对象总结一下,共分为三类
    - -! 老规矩 第一部分是概念性知识!!!

    面向对象编程,我们可以把他想象成我们在造人。一个对象便是一个人,这个人有胳膊有腿,这便是一个对象的属性或者方法。。然后再通过用户的操作指令(click,hover等)来调用我们的js(我们制造的小人),控制我们的小人来执行不同的动作!
    #_#  貌似我解释的够抽象。。。
    当然了面向对象最大的优点就是复用性强、节省代码、提高开发效率、下来来完成我的处女作文章。。。


    1、工厂模式
    - -#  学习了这个模式真的挺受教的,开始怎么写都有错误,最后通过问了下朋友才弄明白,原来 下面的例子中 var obj = new Object();
    这句话中的Object 是不可以改变的,他是js对象(我是这么认为的,如有不对请指出) 当然这句话也可以这么写
    var obj = {};   或者  var obj = new  function(){};
    //从这几种方式我想大家应该可以猜到我们var obj 只要是等于一个对象({})就是可以的。
     1 function box(name,age,fuck){
     2         var obj = new Object(); //   windows 对象
     3         obj.name = name;
     4         obj.age = age;
     5         obj.run = function (){
     6             return fuck;
     7         };
     8         return obj;
     9 };
    10     var bb = box('小明','38','北京市');
    11     console.log(bb.run()); //北京市
    注: 工厂模式生产出来的实例不支持用 prototype 继承!所以为了后期维护代码,不建议经常使用。
    看到一篇文章上说,不让使用this  或者 new 的时候使用这种工厂模式。。。有点不懂,,什么情况会不能使用this 或者new 呢??
    实在搞不懂这种写法什么时候会用到。。。。好吧不纠结了。。知道这种写法就好。。。。


    2、构造函数
    也是大家喜欢用的一种方式(更完美的是+原型模式混合着写),
    1 function dog(){
    2         this.cat = 123;
    3         this.mao = 456;
    4         this.stu = function(){
    5             console.log(this.mao);
    6         }
    7 };
    8   //console.log(typeof dog);
    3、原型模式   (继续上面构造函数的例子)
    1 dog.prototype.gou = function(){
    2         console.log(this.mao); 
    3 };
    4     var ani = new dog();
    5     //ani.gou();  456
    6     //console.log(ani);   dog {cat: 123, mao: 456, stu: function, gou: function}
    
    
    2和3加起来就是个人认为就是完美的开放方式啦。。。。原型+构造函数。
    第一次总结这么多。。想想还有些鸡冻呢。。。如何说的不对的地方,还请指出。。
    咦? 貌似面向对象还缺一部分吧。。。 貌似还有继承。。除了继承还有其他的嘛? 明天再研究。。。去吃饭。。。。







     
    爱情伴随瓶子在大海上漂流
  • 相关阅读:
    登录认证,全选,反选
    jQuery基础知识
    jQuery
    js练习
    BOM DOM
    mysql视图
    用CrwalSpider爬取boss直聘
    设置piplines.py数据管道
    在middlewares.py文件里添加代理ip
    爬取豆瓣电影
  • 原文地址:https://www.cnblogs.com/bottles/p/4585992.html
Copyright © 2011-2022 走看看