JS中的继承方式,以及JS中经典的抽象概念,ES5和ES6的继承区别
一:JS中的抽象概念
在说继承方式之前,先来了解下js中几个较为抽象的概念。
1.原型
原型就是
在js中万物皆对象,对象又分为两种:普通对象(Object)和函数对象(Function)。-----null也是对象,但这里不做考虑。
任何对象都具有隐式原型属性(__proto__
),因为是人人平等的属性,所以,加上了双下划线,可以理解为魔法属性。
只有函数对象有显式原型属性(prototype)。
参考地址:https://blog.csdn.net/u012468376/article/details/53121081
2.原型链:原型链是针对原型对象的,在查找实例属性时,现在实例中查找,如果没有找到,再到obj.proto(=f1.prototype)原型对象,再到f1.prototype.proto(=f2.prototype),依次向上查找。
3.作用域链:作用域链是针对变量的,现在自己的变量范围内查找,找不到,再沿着作用域网上查找。
4.构造函数、原型对象和实例之间的联系(图示)
5.构造函数、原型对象、子类构造函数、子类原型对象和子类实例之间的联系(图示)
ES5中乱七八糟的继承,在ES6中得到梳理
ES5中,有六种继承方式
ES6中,只有一种继承方式
具体参考如下
https://www.cnblogs.com/annika/p/9073572.html
分类:
3js|es5|es6
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通