前端 JavaScript 进阶面试题, JavaScript 的原型链指向什么?
前端 JavaScript 进阶面试题, JavaScript 的原型链指向什么?
QA
Step 1
Q:: 什么是 JavaScript 的原型链?
A:: JavaScript 的原型链是对象之间通过原型 (prototype)
属性连接形成的链条。当试图访问一个对象的属性时,如果该属性在对象本身不存在,JavaScript 会沿着原型链向上查找,直到找到该属性或者到达链的顶端(即 null)。
Step 2
Q:: JavaScript 原型链的作用是什么?
A:: 原型链的作用是实现继承。在 JavaScript 中,通过原型链,可以让对象共享属性和方法,减少重复代码,节省内存空间,提高代码复用性。
Step 3
Q:: 如何解释 JavaScript 中的 proto 和 prototype 的区别?
A:: proto 是每个对象都有的一个属性,它指向该对象的原型对象。而 prototype 是函数对象特有的一个属性,它指向该函数的原型对象。
Step 4
Q:: 什么是构造函数?如何使用它们?
A:: 构造函数是用于创建对象的函数。它们通常以大写字母开头,并使用 new 关键字调用。例如:function Person(name) { this.name = name; }。使用 new Person('Alice')
创建一个新对象。
Step 5
Q:: 如何判断一个对象是否具有某个属性?
A:: 可以使用 hasOwnProperty 方法来判断对象是否具有某个属性。例如:obj.hasOwnProperty('name')
。该方法只检查对象本身的属性,不检查原型链上的属性。
Step 6
Q:: 如何实现一个继承关系?
A:: 可以通过使用 Object.create() 或者直接设置 __proto__ 属性来实现继承。例如:Child.prototype = Object.create(Parent.prototype); Child.prototype.constructor = Child;
或者直接使用 class 语法糖。