理解 JavaScript 中原型的概念和使用方法。
JavaScript 中的原型是指每个对象都有一个内部属性 [[Prototype]],可以理解为一个指针,指向它的原型对象。原型对象也是一个普通的对象,它有自己的原型,直到指向 null 为止形成了一条原型链。
原型链的作用是当对象的某个属性或方法不存在时,会沿着原型链向上查找,直到找到该属性或方法,或者查到最顶层的 Object.prototype,如果还没有找到,则返回 undefined。
比如,如下代码可以创建一个对象 obj,它有一个属性 name:
var obj = {name: 'Alice'};
那么 obj 的原型是 Object.prototype,如果执行以下代码:
console.log(obj.toString());
obj 本身没有 toString 方法,那么 JavaScript 引擎会沿着原型链找到 Object.prototype 上的 toString 方法,然后执行它。
在 JavaScript 中,可以通过 Object.create() 方法来创建一个对象,并指定该对象的原型。比如,如下代码创建了一个新的对象 obj,它的原型是 prototypeObj:
var prototypeObj = {name: 'Bob'};
var obj = Object.create(prototypeObj);
此时 obj 有一个 name 属性,它的值为 Bob,这是因为 obj 没有自己的 name 属性,JavaScript 引擎会沿着原型链找到 prototypeObj 上的 name 属性。
总之,理解原型的概念和原型链机制,可以更好地理解 JavaScript 中的对象和继承。