【颠覆旧知识】JS的原型链搜索原则;

最近准备面试,梳理以前的知识,发现我以前对原型链的搜索原则理解一直不完全对。

以前的理解:

"在当前对象未找到该属性,就一直向上查找,找到就停止并返回该数据,如果直到object的原型也没找到,就返回undefined ,如果是调用方法就报错, 该 xxxx 不是一个函数"


正确搜索原则:

在当前对象未找到该属性,就沿着原型链向上查找,找到就停止并返回该属性,

直到某个的原型的值为null都没找到该属性的话则终止,然后返回 undefined ,如果是调用方法就会导致报错, xx is not a function

案例:

Object.prototype.test1 = "芙莉莲";

function t1() {}

let a = new t1();

console.log(a, a.test1); >> "芙莉莲"

Object.setPrototypeOf(t1.prototype, null);

let b = new t1();

console.log(b, b.test1); >> undefined


没想到是在搜索过程中遇到原型的值为null时,就停止,并不是就会一直查找到Object的原型才停止;

虽然旧公司非常操蛋,工作氛围差,强迫加班,但领导的技术确实可以,对我有不小启发。现在找工作重新梳理知识才发现该问题。

相关推荐
狗哥哥几秒前
前端基础数据中心:从混乱到统一的架构演进
前端·vue.js·架构
树深遇鹿4 分钟前
数据字典技术方案实战
前端·javascript·架构
爱吃大芒果12 分钟前
Flutter 基础组件详解:Text、Image、Button 使用技巧
开发语言·javascript·flutter·华为·ecmascript·harmonyos
大布布将军29 分钟前
一种名为“Webpack 配置工程师”的已故职业—— Vite 与“零配置”的快乐
前端·javascript·学习·程序人生·webpack·前端框架·学习方法
JosieBook30 分钟前
【Vue】02 Vue技术——搭建 Vue 开发框架:在VS Code中创建一个Vue项目
前端·javascript·vue.js
科普瑞传感仪器37 分钟前
航空航天制造升级:机器人高精度力控打磨如何赋能复合材料加工?
java·前端·人工智能·机器人·无人机·制造
前端开发呀43 分钟前
成为开源项目的Contributor:从给uView-pro 贡献一次PR开始
前端·微信小程序
1024肥宅1 小时前
JavaScript 数组原生方法手写实现
前端·javascript·ecmascript 6
rockmelodies1 小时前
CVE-2025-55182:React Server Components 断点跟踪
前端·react.js·前端框架
草帽lufei1 小时前
3大免费AI工具实战测评,用提示词“调教”出业务大屏
前端·ai编程·trae