翻译

instanceof 操作符

instanceof 操作符用于判断一个对象是否是另一个对象的子类实例。如果是,它会返回 trueinstanceof 是一个二元中缀操作符,其左操作数是一个对象,右操作数是一个对象类型。如果左操作数的类型是由右操作数指定的类型,则返回 true。它与 .constructor 属性的区别在于,instanceof 会“沿着原型链向上查找”。例如,如果对象 a 是类型 b,并且 b 是类型 c 的扩展,那么 a instanceof ba instanceof c 都会返回 true,而 a.constructor === b 会返回 true,但 a.constructor === c 会返回 false

通过原型继承

对象的原型可以用来为对象创建字段和方法。通过将超类的新实例赋值给原型,可以实现继承。

function CoinObject() {
  this.value = 0; 
  this.diameter = 1;
}

function Penny() {
  this.value = 1;
}
Penny.prototype = new CoinObject();

function Nickel() {
  this.value = 5;
}
Nickel.prototype = new CoinObject();

通过函数继承

待做: 提供一种基于函数的继承方法推荐 - 参考网址:http://www.crockford.com/javascript/inheritance.html

function CoinObject() {
  this.value = 0; 
  this.diameter = 1;
}

参考文献

  • Matthew Batchelder. "Object Oriented JavaScript" 介绍了一种在 JavaScript 中实现继承的方法。
Last modified: Monday, 13 January 2025, 3:06 PM