什么是Spider中的“extends”关键字?

时间:2014-11-22 14:34:56

标签: javascript oop prototype keyword spiderlang

Spider通过添加2个关键字extendssuper来接受JavaScript原型OOP。

  • 他们是什么?
  • 他们解决了什么问题?
  • 什么时候适当?什么时候不适合?

1 个答案:

答案 0 :(得分:3)

extends关键字允许您继承现有对象。例如,假设您有一个Animal对象:

fn Animal(name) {
  this.name = name;

  this.walk = fn() {
    console.log('\(name) is walking...');
  };
}

Animal.prototype.getLegs = fn() {
  return 4;
};

您现在可以使用extends关键字创建另一个继承Animal的对象:

fn Spider(name)
  extends Animal(name) {

}

Spider.prototype.getLegs = fn() {
  return 8;
};

当您创建新的Spider对象时,您将自动拥有walk方法,因为Spider扩展了Animal

var spider = new Spider("Skitter the Spider");
spider.walk();

Spider(该语言)还提供super关键字,可让您轻松访问要扩展的对象。例如:

Spider.prototype.getLegs = fn() {
  return super.getLegs() + 4; 
};

spider.getLegs(); // => 8

实施

Spider中的代码:

fn Spider() extends Animal {}

编译为以下JavaScript:

function Spider() {
  Animal.call(this);
}

Spider.prototype = Object.create(Animal);