js:面向对象编程,原型与原型链的原理,ES6新增的class语法 - 第十八天

# 一、复习

1、面向对象

    - 面向:以....为主

    - 对象:提高了信息的传输和查找速度

    - 特点:封装、继承、多态

    - 面向过程-面向函数-面向对象-面向模块-面向组件

    - 创建:

        - 单列模式创建对象:只有一个对象被操作

            - 字面量:const obj = {}

            - 创建函数: const obj2 = new Object()

        - 工厂模式创建对象:批量创建多个同特点的对象

            - 将单例模式创建对象的方式进行封装

                - 把相同属性,提前放在一个对象中->构造函数(类)

                - 把相同的方法,提前放在原型中->原型(规范)

            - 执行封装后的函数,实现批量创建对象->new执行函数(实例)

        - 类:是实例的抽象

        - 规范:提供了实例的规范接口

        - 实例:是类的具象

    - 过程:

        - 分析:拆解项目,拆分成小功能

        - 设计:将各个小功能根据各自的联系,进行组装和拼接

        - 编程:按照分析和设计的结果进行实际行动

        - 分析和设计过程中遵守规则:高内聚、低耦合

    - 原型

        - 原型属性:函数的prototype

        - 原型链属性:实例的__proto__

        - 关系:实例的__proto__指向创建自身的函数的prototype

        - 对象的属性或方法的使用原则

            - 顺着__proto__逐层查找

            - 就近原则

    - new的原理

        1、创建对象

        2、改变原函数的this指向该对象

        3、将着新对象的__proto__指向了原函数的prototype

        4、原函数是否主动返回对象,无,返回这个函数

# 三、ES6新增的class

1、实例属性抽象成类(构造函数)

2、实例的方法抽象成功能接口规范(构造函数的原型)

3、高内聚低耦合

4、ES6新增的class语法

class Fn{

    constructor(n,m){

        //<!-- 等同于构造函数 -->

        this.name=n

        this.age=m

    }

    // <!-- 等同于原型部分 -->

    abc(){

        console.log(this.name)

        console.log(this.age)

    }

}

const f= new Fn('fds',18);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值