什么是原型链

简介: 什么是原型链

原型链:


JavaScript万物都是对象,对象和对象之间也有关系,并不是孤立存在的。对象之间的继承关系,在JavaScript中是通过prototype对象指向父类对象,直到指向Object对象为止,这样就形成了一个原型指向的链条,专业术语称之为原型链。





使用:


function Fn() {}// Fn为构造函数

var f1 = new Fn();//f1是Fn构造函数创建出来的对象

构造函数的prototype属性值就是对象原型。(Fn.prototype就是对象的原型)

构造函数的prototype属性值的类型就是对象 typeof Fn.prototype===object.

对象原型中的constructor属性指向构造函数 (Fn.prototype.constructor===Fn)

对象的__proto__属性值就是对象的原型。(f1.__proto__就是对象原型)

Fn.prototype===f1.__proto__ 其实它们两个就是同一个对象---对象的原型。

所有Fn.prototype.__proto__===Object.prototype

typeof Object.prototype ===object。

Object.prototype.__proto__===null。


我讨论原型就是指的对象与原型对象之间的关系。所以原型链也称之为对象链。






总结:函数的原型对象constructor默认指向函数本身,原型对象除了有原型属性外,为了实现继承,还有一个原型链指针__proto__,该指针指向上一层的原型对象,而上一层的原型对象的结构依然类似,这样利用__proto__一直指向Object的原型对象上,而Object的原型对象用Object.prototype.__proto__ = null表示原型链的最顶端,如此变形成了javascript的原型链继承,同时也解释了为什么所有的javascript对象都具有Object的基本方法。


相关文章
|
移动开发 前端开发 JavaScript
说说JSBridge的原理?
本文首发于微信公众号“前端徐徐”,作者徐徐。文章介绍了 JSBridge 的背景、核心原理及其在 Android 和 iOS 平台上的实现方式,探讨了其应用场景、安全性和性能考量,并提供了优化建议。JSBridge 作为混合开发的关键技术,允许网页应用调用原生功能,结合了两者的优点。
1321 2
说说JSBridge的原理?
|
缓存 前端开发 算法
浅谈【JavaScript】的浏览器指纹?
浅谈【JavaScript】的浏览器指纹?
388 0
|
前端开发 NoSQL 应用服务中间件
javaweb单点登录的三种实现方式
javaweb单点登录的三种实现方式
529 0
|
人工智能 JavaScript 前端开发
AI问答:JSBridge / WebView 与 Native 通信
AI问答:JSBridge / WebView 与 Native 通信
724 1
|
前端开发 JavaScript
node-sass与node版本不匹配问题解决方法
node-sass与node版本不匹配问题解决方法
4639 0
|
8天前
|
人工智能 开发工具 iOS开发
Claude Code 新手完全上手指南:安装、国产模型配置与常用命令全解
Claude Code 是一款运行在终端环境中的 AI 编程助手,能够直接在命令行中完成代码生成、项目分析、文件修改、命令执行、Git 管理等开发全流程工作。它最大的特点是**任务驱动、终端原生、轻量高效、多模型兼容**,无需图形界面、不依赖 IDE 插件,能够深度融入开发者日常工作流。
2973 7
|
10天前
|
Shell API 开发工具
Claude Code 快速上手指南(新手友好版)
AI编程工具卷疯啦!Claude Code凭借任务驱动+终端原生的特性,成了开发者的效率搭子。本文从安装、登录、切换国产模型到常用命令,手把手带新手快速上手,全程避坑,30分钟独立用起来。
3072 20