关于面向对象

简介: 一、概述 js对面向对象的实现就是给函数一个原型对象(Prototype),两者结合可以用来表达类。类的实质就是由两个对象组合而成(函数是特殊的对象),它们通过prototype和constructor属性相互引用。

一、概述

js对面向对象的实现就是给函数一个原型对象(Prototype),两者结合可以用来表达类。类的实质就是由两个对象组合而成(函数是特殊的对象),它们通过prototype和constructor属性相互引用。

二、类

ES6的class是构造函数的语法糖,本质上也是特殊的函数,constructor是部分构造器,真实的构造器还要加上class的属性、静态属性、静态方法,构造器的原型会添加class的方法

  1. 类的属性和方法:略
  2. 类的继承:由于类是由2个对象组合的,所以类的继承实质就是2个对象的原型链连接(通过__proto__),再将2个duixa对象通过prototype和constructor属性相互引用。表现出来就是类会有2条继承链,一条是构造器作为对象的继承链,一条是构造器的原型的继承链。
  3. 类的实例:类通过构造器生成一个对象,该对象继承构造器的原型。实例就是原型继承链上的对象。
  4. 类的tips:关键字super指向yun原型链的上级,类有2条原型链,所以super在类中会有2中情况。继承得到的类的构造器不能生成this对象,只能通过super指向shag上级构造器对象。类中默认为严格模式。

三、总结

本没有对象,取了Prototype后,new一下就有了。本没有类,加了class语法糖后,就有了。若很想完整的体验面向duixa对象编程,就使用TypeScript吧,否则就没必要舍弃js的动态魅力。

目录
相关文章
|
2月前
|
C语言 C++
【c++】什么是面向对象
【c++】什么是面向对象
【c++】什么是面向对象
|
6月前
|
Java
1.7 面向对象
1.7 面向对象
29 0
|
9月前
|
C#
C#视频之面向对象
C#视频之面向对象
48 0
|
9月前
再次认识面向对象
再次认识面向对象
32 0
|
9月前
到底什么是面向对象。
到底什么是面向对象。
22 0
|
11月前
|
存储 搜索推荐 编译器
C++ 面向对象篇
C++程序在执行时,将内存大致分为四个区域; - 代码区:存放函数体的二进制代码,操作由系统管理 - 全局区:存放全局变量和静态变量以及常量 - 栈区:由编译器自动分配释放,存放函数的参数值(形参),局部变量等 - 堆区:由程序员分配和释放,若程序员不手动释放,系统在程序结束时自动回收
123 0
面向对象-其他
类属性只能通过类对象修改,不能通过实例对象修改,如果通过实例对象修改类属性,表示是创建了一个实例属性。
|
Java
2. 面向对象(三)
2. 面向对象(三)
105 0
|
Java
2. 面向对象
面向过程,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求。
121 1
|
Java
面向对象(二)
javase内容
58 0