面向对象的三大特点:封装 继承 多态

5 篇文章 0 订阅

面向对象的三大特点:封装 继承 多态

  • ES6 class 关键词定义类,必须通过new关键词来调用

  • ES5 构造函数+原型 模拟类

1>成员的属性和方法
2>原型的属性和方法

注:以上两种都是通过this或者是实例来调用,

如果调用的方法在成员方法和属性上能找到,直接调用,

成员方法上找不到,往原型对象上找,到最后都没找到,报xx is not a function

3>静态的属性和方法

必须通过类名调用

什么是构造函数?

通过new关键词调用的函数,就是构造函数

在new调用函数的过程中发生了什么?

  • 新生成了一个对象
  • 链接到原型
  • 绑定 this
  • 返回新对象
    function create() {
        //1.创建一个新对象
        let obj = {}     
        //2.获取构造函数           
        let Con = arguments[0]
        //3.把构造函数的原型对象赋值给obj
        obj.__proto__ = Con.prototype
        //4.把构造函数内部的this指向obj
        let result = Con.apply(obj, arguments)
        return obj
    }

    create(Person);
原型链是什么?

通过对象的__proto__属性一直往上查找,直到null,这个链就叫原型链

使用原型链的好处是什么?

减少方法和属性的创建,节省内存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值