每一周的学习报告 第二周 面向对象编程和DOM

JavaScript

面向对象编程

一些奇奇怪怪的东西

使用继承避免重复

当出现重复代码

Bird.prototype = {
  constructor: Bird,
  describe: function() {
    console.log("My name is " + this.name);
  }
};

Dog.prototype = {
  constructor: Dog,
  describe: function() {
    console.log("My name is " + this.name);
  }
};

上面的describe方法重复了
我们可以通过通过创建一个父类supertype解决

function Animal() { };

Animal.prototype = {
  constructor: Animal, 
  describe: function() {
    console.log("My name is " + this.name);
  }
};

再通过create方法将子辈Bird,Dog的原型设置为父辈的实例

let Bird.prototype = Object.create(Animal.prototype);
let Dog.prototype = Object.create(Animal.prototype);

这里有个小问题,create方法会将Bird,Dog的construction属性改写成父辈的construction属性
这里需要手动将Bird,Dog的construction属性改写回原来的construction属性

Bird.prototype.constructor = Bird;
Dog.prototype.constructor = Dog;
立即调用函数表达(IIFE)
let motionModule = (function () {
  return {
    glideMixin: function(obj) {
      obj.glide = function() {
        console.log("Gliding on the water");
      };
    },
    flyMixin: function(obj) {
      obj.fly = function() {
        console.log("Flying, wooosh!");
      };
    }
  }
})();

这种类型函数是匿名的将会立刻执行

DOM对象

什么是DOM,全程Document Object Model 文档对象模型

作用是JS可以通过DOM对HTML文档进行操作

  • 文档
    整个HTML文档
  • 对象
    将网页的每一个节点转换成对象,我们就可以通过面向对象的方式进行操作
  • 模型
    模型可以表示对象的关系,方便我们管理对象
    DOM树
  • 节点
    网页中的每一个部分都是一个节点
    但每一个节点 属性类型不同
    节点分为4类
  1. 文档节点:整个HTML文档
  2. 元素节点: HTML标签
  3. 属性节点 元素的属性
  4. 文本节点: 文本内容

节点的属性:
节点的属性

利用DOM操作HTML文档

<body>
    <button id="bttn">按钮</button>
    <script>
        //获取button对象
        var buttton = document.getElementById("bttn");
        //修改 按钮文字
        buttton.innerHTML="这是一个按钮";
    </script>

浏览器为我们创建了一个文档节点document ,文档节点代表整个网页 所有元素包含在其中,通过getElementById方法取得ID为buttton的button,innerHTML对象表示button内部的HTML元素,修改innerHTML对象改变按钮的名字

  • 事件
    事件就是文档与浏览器发生的交互
    点击按钮 移动鼠标…都是一个事件

对事件进行交互
当事件触发时,执行一段JavaScript代码

<body>
    <button id="btn">按钮</button>
    <script>
        //获取按钮对象
        let button = document.getElementById("btn");
        //绑定一个单击事件
        button.onclick = function(){
            alert("按钮被点击");
        };
    </script>
</body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值