es5 的面向对象和 es6 的面向对象以及类(class)

es5 的面向对象和 es6 的面向对象

es5 的面向对象是通过 new 一个构造函数实现的
es6 的面向对象是通过 class 实现的 es6 的 class 就是面向对象的语法糖(实现同样的功能 但是代码更少 更加简洁)

面向对象是一个概念或者编程思想,面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式

(在 js 中一切皆对象
比如说数组 object number string 等等 这些都是内置对象

那么怎么自定义对象
es5 的时候没有像后台语言一样的 class 这个概念 所以我们用函数当作构造函数来创建对象)

2.13 说说 new 操作符具体⼲了什么?

答:在 JavaScript 中, new 操作符⽤于创建⼀个给定构造函数的实例对象
new 的实例可以访问构造函数函数里的属性
也能访问 原型上的方法

创建⼀个新的对象 obj
将对象与构建函数通过原型链连接起来
将构建函数中的 this 绑定到新建的对象 obj 上
根据构建函数返回类型作判断,如果是原始值则被忽略,如果是返回对象,需要正常处理

2.14 说⼀下 JavaScript 原型,原型链的理解?

  1. prototype 显式原型
    每个函数都有一个 prototype 属性,被称为显式原型,里面包含了这个构造函数公共的方法
  2. _ proto 隐式原型
    每个实例对象都会有_ proto 属性,其被称为隐式原型
    每一个实例对象的隐式原型
    proto _属性指向自身构造函数的显式原型 prototype
  3. constructor
    每个 prototype 原型都有一个 constructor 属性,指向它关联的构造函数.
  4. 原型链
    获取对象属性或者方法的时候,如果对象本身没有这个属性,那就会去他的原型_ proto 上去找,如果还查不到,就去找原型的原型,一直找到最顶层(Object.prototype)为止.Object.prototype 对象也有 proto _属性值为 null.

2.11 Javascript 如何实现继承?

答:JS 继承实现⽅式也很多,主要分 ES5 和 ES6 继承的实现

  1. 先说⼀下 ES5 是如何实现继承的
    ES5 实现继承主要是基于 prototype 来实现的,具体有三种⽅法

    ⼀是实例继承:B.prototype=new A() 让 b 的原型等于 a 的实例
    
    ⼆是借⽤构造函数继承(call 或者 apply 的⽅式继承)
    function B(name,age) {
    A.call(ths,name,age)
    }
    三是组合继承
    组合继承是结合第⼀种和第⼆种⽅式
    
    
  2. 再说⼀下 ES6 是如何实现继承的
    ES6 继承是⽬前⽐较新,并且主流的继承⽅式,⽤ class 定义类,⽤ extends 继承类,⽤ super()表示
    ⽗类,【下⾯代码部分只是熟悉,不⽤说课】
    例如:创建 A 类

    class Aconstructor() {
    //构造器代码,new 时⾃动执⾏
    }
    ⽅法 1( ) { //A 类的⽅法 }
    ⽅法 2( ) { //A 类的⽅法 }
    }
    创建 B 类并继承 Aclass B extends A {
    constructor() {
    super() //表示⽗类
    }
    }
    实例化 B : var b1=new B( )
    b1.⽅法 1( )
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值