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

posted @   风意不止  阅读(325)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示