# 对象练习
* 什么是面向对象  什么是面向过程   
* 分别介绍对象的三大特征
* 对象也是一个变量，但对象可以包含多个值（多个变量），每个值以  对呈现。 
* 定义一个对象 包含下列属性  name age sex addr(居住地)  job(职业)  
  包含下列方法 
    eat, sleep, playgame, watchtv ,read
    函数体内自定义内容 不可为空
* 给上面的题里的对象添加 height(身高) weight(体重)  属性并赋值
* 给上面题里的对象添加 下列方法
  meituan(点外卖 参数需要传手机号和居住地址 想吃的东西 返回下单成功) 
  cook(做饭  需要传入时间 判断当前是哪一顿饭)
  travel(需要传入目的地  返回我去哪里玩啦)
  listenmusic(传入你喜欢的歌手 控制台打印最喜欢的曲子)
  work（传入上班时间和下班时间  判断是否为996）

*  访问上面对象定义的以及添加后的所有属性（两种方式访问  先指明可以通过什么方式访问）
    格式为  如name字段: 姓名：+name的属性值
    通过调用不同的方法来制定行程（按照正常顺序调用上面对象的每一个方法）

* 探索对象创建的其他方式 每种都举例尝试（不得少于三个方法  五个属性）
* 探索遍历函数的所有属性
* 五大主流浏览器的名字为键  内核为值 创建一个对象
*  下面代码的执行结果是：
  ```
  function person(firstname,lastname,age,eyecolor)
  {
      this.firstname=firstname;
      this.lastname=lastname;
      this.age=age;
      this.eyecolor=eyecolor;
      return [this.firstname,this.lastname,this.age,this.eyecolor,this] 
  }

  var myFather=new person("John","Doe",50,"blue");
  var myMother=person("Sally","Rally",48,"green");
  console.log(myFather)
  console.log(myMother) 
  ```
* 下面代码的执行结果是什么 为什么
  ```
  const user = {
  name: "John"
  };
  user.name = "Pete"; 
  alert(user.name);
  ```

* 如何访问下面对象的bird属性
  对象为：
  var user={
    fire:"fox",
    likes:{
      type:"animal",
      bird:"fly"
    }
  }
  给user对象添加一个属性名是name 值是user
  给user对象添加一个方法 触发后可以删除user对象的likes里面的type

  创建一个对象  属性值为用户输入的自定义字符（最少三个属性）
  
* 创建一个对象 包含如下内容
  * code  值为200
  * msg   值为"请求成功"
  * data  值为数组[]
  * data中包含如下内容
    * shopname  商品名
    
    * pic   商品图片
    
    * desc  商品简介
    
  * price  商品价格
    
    * kucun  库存
    
    * xiaoliang   销量
    
    * caozuo  操作
    
      注 写的时候把值赋上
  
* 把上面那个题目用构造函数的重新写一份，并生成4个内容不同的对象

* 创建一个对象  包含如下内容
  * store 商店名称
  * addr 商店地址
  * sale: 方法  输出xxx商店正在大甩卖
  
* 遍历上面的两个对象 并输出每个的键和值

* 从外面给商店的对象增添一个shoplist的属性 该属性是一个数组 包含英雄名称跟英雄价格 货币单位以金币计算（5个王者英雄就ok）

* 把第一题中的data中的对象里面的caozuo 属性删除


* 分析
  ```
  var F = function () {}
    Object.prototype.a = function () {}
    Function.prototype.b = function () {}

    var f = new F()
    // 请问f有方法a  方法b吗


* 写出p1,p2,person,obj,Function,Object等的原型链
    function Person(){}

        let p1 = new Person()
        let p2 = new Person()
        let obj = {}
* 通过原型链实现祖孙三层继承关系 （每个对象包含三个属性，两个方法）
* 访问上个题中原型中的对象
* 用用原型链继承封装dom操作
  * 创建元素
  * 修改属性
  * 修改内容
  * 添加事件
  
