gpt4 book ai didi

javascript - Spider中的 "extends"关键字是什么?

转载 作者:行者123 更新时间:2023-11-29 10:42:02 25 4
gpt4 key购买 nike

Spider通过添加 2 个关键字来拥抱 JavaScript 原型(prototype) OOP:extendssuper

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

最佳答案

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);

关于javascript - Spider中的 "extends"关键字是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27078531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com