JS高级编程面试题及详细答案.docxVIP

  • 0
  • 0
  • 约1.96万字
  • 约 24页
  • 2026-06-09 发布于河北
  • 举报

JS高级编程面试题及详细答案

一、基础进阶(必问,考察核心概念理解)

1.请解释JS中的原型链,以及prototype和__proto__的区别,举一个实际开发中的应用场景

答案:

首先明确核心:JS中所有对象都有__proto__(隐式原型),所有函数都有prototype(显式原型),原型链的本质是“对象查找属性/方法的链路”——当访问一个对象的属性时,先找自身,找不到就通过__proto__找它的原型对象,一直往上找,直到找到Object.prototype(原型链顶端),找不到就返回undefined。

prototype和__proto__的核心区别:

1.归属不同:prototype是函数独有的(函数也是对象,但只有函数有prototype),用于定义该函数实例化对象的公共属性和方法;__proto__是所有对象都有的(包括函数),用于指向它的原型对象,搭建原型链。

2.作用不同:prototype是“模板”,供实例继承;__proto__是“桥梁”,连接对象和它的原型,实现属性查找。

补充:函数的__proto__指向Function.prototype(因为函数是Function的实例),Object.prototype的__proto__是null(原型链终点)。

实际应用场景:开发中封装公共组件/工具类时,用原型链实现继承,减少代码冗余。比如封装一个弹窗

文档评论(0)

1亿VIP精品文档

相关文档