javaScript中原型链

一、原型链

js 的对象分为普通对象和函数对象。每个对象都有__proto__ 但是只有函数对象 (非箭头函数) 才有 prototype 属性。

new的过程:

1、创建一个空的简单 javaScript对象

2、将空对象的 __proto__连接到该函数的 prototype

3、将函数的this指向新创建的对象

4、函数中如果没有返回对象的话,将this作为返回值

原型链

实例对象都有一个__proto__, __proto__ 指向原型对象,原型对象里有个constructor就是构造函数,构造函数的prototype指向原型对象,因为原型对象也是对象,所以原型对象也有__proto__, __proto__指向原型对象的原型对象,也就是Object, Object也是对象,所有,Object也有__proto__指向Object的原型对象为null, 这就是原型链。

相关推荐
咖啡の猫14 分钟前
Python中的变量与数据类型
开发语言·python
前端达人15 分钟前
你的App消息推送为什么石沉大海?看Service Worker源码我终于懂了
java·开发语言
汤姆yu27 分钟前
基于springboot的电子政务服务管理系统
开发语言·python
云中飞鸿32 分钟前
函数:委托
javascript
全栈师36 分钟前
C#中控制权限的逻辑写法
开发语言·c#
S***q1921 小时前
Rust在系统工具中的内存安全给代码上了三道保险锁。但正是这种“编译期的严苛”,换来了运行时的安心。比如这段代码:
开发语言·后端·rust
打点计时器1 小时前
matlab 解决wfdb工具使用本地数据集报错
开发语言·matlab
zmzb01031 小时前
C++课后习题训练记录Day38
开发语言·c++
夏霞1 小时前
c# 使用vs code 创建.net8.0以及.net6.0 webApi项目的教程
开发语言·c#·.net
T***u3332 小时前
Rust在Web中的 Web框架
开发语言·后端·rust