zoukankan      html  css  js  c++  java
  • 面向对象思想(第一天)

    01:

    函数:其实就是一个工具,每个函数都封装了特定的功能;拥有自己的名字,参数,就像一个打火机一样,我们只需要知道如何去使用他,而不需要了解他如何制造;

    对象:就像一个工具包,将功能类似的函数封装到一起,方便我们维护和使用,管理;一个对象包括其属性和方法;如:图书馆对图书进行分类管理,函数就是对象里面的方法;

    面向对象:我们找一个工具(对象)去帮我们工作,实现某种功能,‘借物’的思想;

    传统的编辑程序:定义变量----获取元素---绑定元素---绑定事件;

    面向对象开发:

      a.思考需要哪几个对象/工具包,主要开源与名词的提升,如,一个产品信息,我i们要把产品放到购物车里面,则我们可以提炼出两个对象:一个产品;一个购物车;

      b.思考每个对象需要哪些属性和方法,将与产品相关的代码放到产品里,和购物车相关的代码放入购物车对象里面;

    面向对象的好处:便于分工合作,解耦和;

    架构师的作用:宏观规划需要 哪些对象,ing编写好较难写的对象;

    高级工程师:将一个项目分成很多对象,他们负责编写对象细节;

    初级工程师:使用对象;

    实例化:将抽象的对象只有具体化以后才能使用;new方法实例化;

    案例:(1)分析需要哪些对象;定义一个产品对象;

        写出:

    1 function Product(){
    2 }
    3 
    4 Product.prototype={
    5 }

    (2)分析对象的属性与方法:先写汉语注释,再写代码;

    (3)定义一个方法bindDom.将绑定的代码都放到里面,用字符串进行拼接(因为数据是从后台传过来自动生成的);

    (4)每一个产品都要进行一个实例:

    总体JS代码如下:

     1 //产品对象
     2 /*对象内如何使用对象的属性和方法:this,对象外如何使用:先实例化,后用点语法*/
     3 function Product() {
     4     /*属性 行为*/
     5     this.name ='';
     6     this.price='';
     7     this.description = '';
     8     this.youhuijia='';
     9     this.zhekou = ''
    10     this.sales = ''
    11     this.image=''
    12 }
    13 Product.prototype={
    14     bindDom:function(){
    15         var str=''
    16         str+='<dl>'
    17             str+='<dt><a><img src="'+this.image+'" width="384" height="225" /></a></dt>'
    18             str+='<dd>'
    19                 str+='<span><a><em>'+this.zhekou+'折/</em>'+this.name+'</a></span>'
    20             str+='</dd>'
    21             str+='<dd class="price">'
    22                 str+='<em>¥'+this.price+'</em>'
    23                 str+='<del>¥'+this.youhuijia+'</del>'
    24                 str+='<i>售量:'+this.sales+'</i>'
    25             str+='</dd>'
    26         str+='</dl>'
    27         return str;
    28     },
    29     bindEvents:function(){
    30 
    31     }
    32 }
    33 
    34 /*搭积木开发 -- 代码可读性极高*/
    35 window.onload=function() {
    36   /*假设这是ajax获取的json数据 -- 假设这是后台给你的数据*/
    37     var products= [
    38         {name:'手机中的战斗机',price:1111,youhuijia:1000,sales:300,zhekou:3.5,image:'img/boutque10_r2_c2.jpg'},
    39         {name:'手机中的战斗机',price:1111,youhuijia:1000,sales:300,zhekou:3.5,image:'img/boutque06_r2_c2.jpg'},
    40         {name:'手机中的战斗机',price:1111,youhuijia:1000,sales:300,zhekou:3.5,image:'img/boutque08_r2_c2.jpg'},
    41         {name:'手机中的战斗机',price:1111,youhuijia:1000,sales:300,zhekou:3.5,image:'img/boutque09_r2_c2.jpg'},
    42         {name:'手机中的战斗机',price:1111,youhuijia:1000,sales:300,zhekou:3.5,image:'img/boutque10_r2_c2.jpg'},
    43         {name:'手机中的战斗机',price:1111,youhuijia:1000,sales:300,zhekou:3.5,image:'img/boutque11_r2_c2.jpg'},
    44     ]
    45 
    46     /*前端代码*/
    47     /*前后台开发不影响,我们不必等待后端人员给我们数据*/
    48     var str=''
    49     for(var i = 0,len=products.length;i<len;i++) {
    50         var product = new Product()
    51         product.name=products[i].name;
    52         product.price=products[i].price;
    53         product.youhuijia=products[i].youhuijia;
    54         product.zhekou=products[i].zhekou;
    55         product.sales=products[i].sales;
    56         product.image=products[i].image;
    57 
    58         str+= product.bindDom()
    59     }
    60     var container = document.getElementById('container')
    61     container.innerHTML=str
    62 }
  • 相关阅读:
    python 查看安装包列表
    Centos7 linux下通过源码安装redis以及使用
    python 安装pip
    python3.7.2 pip 出现locations that require TLS/SSL异常处理方法
    Xshell报错“The remote SSH server rejected X11 forwarding request.”
    ERROR: child process failed, exited with error number 100
    centos7 (ifconfig不能使用) -bash: ifconfig: command not found
    gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now
    Centos7 安装python3.7.2
    Python安装常见问题:zipimport.ZipImportError: can't decompress data; zlib not available 解决办法
  • 原文地址:https://www.cnblogs.com/yangguoe/p/8052167.html
Copyright © 2011-2022 走看看