Javascript 什么是「;扩展;蜘蛛中的关键词?
通过添加两个关键字来支持JavaScript原型OOP:Javascript 什么是「;扩展;蜘蛛中的关键词?,javascript,oop,prototype,keyword,spiderlang,Javascript,Oop,Prototype,Keyword,Spiderlang,通过添加两个关键字来支持JavaScript原型OOP:extends和super 它们是什么 他们解决了什么问题 什么时候合适,什么时候不合适 extends关键字允许您继承现有对象。例如,假设您有一个动物对象: fn Animal(name) { this.name = name; this.walk = fn() { console.log('\(name) is walking...'); }; } Animal.prototype.getLegs = fn()
extends
和super
- 它们是什么
- 他们解决了什么问题
- 什么时候合适,什么时候不合适
动物
对象:
fn Animal(name) {
this.name = name;
this.walk = fn() {
console.log('\(name) is walking...');
};
}
Animal.prototype.getLegs = fn() {
return 4;
};
现在,您可以使用extends关键字创建另一个继承动物的对象:
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);
我不知道具体什么是Spider实现,但这里是cofeescript实现,如果这有帮助的话: