我正在寻找一个简单的例子,在JavaScript中创建一个类,然后在子类中继承。我正在寻找一个方法重写的例子。我意识到Javascript没有支持传统OOP的语法,这似乎是我的问题的根源。Javascript,类继承,方法覆盖
1
A
回答
4
这里是表示这样做的许多方式之一的简单例子。我通常使用John Resig's system。
function Animal(name) {
this.name = name;
}
Animal.prototype.eat = function() {
alert(this.name + " is eating");
};
Animal.prototype.speak = function() {
alert("Hi my name is " + this.name);
};
function Cow(name) {
this.name = name;
}
Cow.prototype = new Animal();
Cow.prototype.speak = function() {
alert("Moooo");
};
var a = new Animal("John");
a.eat();
a.speak();
var c = new Cow("Mary");
c.eat();
c.speak();
0
Javascript没有类,它的原型继承可能有点奇怪。
这就是说,咖啡脚本是正确的,并且会产生大量的JS脚手架代码,您永远都不想自己编写代码以使其工作。
class Foo
word: -> 'foo'
say: -> alert word()
class Bar extends Foo
word: -> 'bar'
bar = new Bar()
bar.say()
哪个编译成这个毛团的JS:https://gist.github.com/1189853
此外,约翰辞职写了一个简单的类策略,可能会根据自己的喜好。 http://ejohn.org/blog/simple-javascript-inheritance/
事实证明,你可以很容易地模仿原型语言的基于类的语义,但不是相反的方式。
1
你需要看看对象的原型,但是你不会有传统的子分类和继承。
我建议你在简洁的说明中查看javascript花园:http://bonsaiden.github.com/JavaScript-Garden/#object。能言善辩的JavaScript对OOP更详细的章节中JS:http://eloquentjavascript.net/chapter8.html
相关问题
- 1. 覆盖继承的方法
- 2. 如何覆盖继承类的方法
- 3. 魔法方法如何覆盖继承
- 4. Mixin覆盖继承的方法
- 5. PHP对象继承和方法覆盖
- 6. C++继承与方法覆盖
- 7. Java继承和方法覆盖
- 8. Java继承和覆盖方法 - 改性
- 9. Python - 继承和方法覆盖
- 10. 用原型继承覆盖方法
- 11. 覆盖继承中的空方法
- 12. 继承:__init__覆盖
- 13. C# - 继承,覆盖
- 14. Javascript继承方法覆盖不起作用
- 15. 公共虚拟方法在继承类中被覆盖保护
- 16. Knockout中的类继承与方法覆盖
- 17. 继承从基类中的覆盖方法
- 18. 蟒蛇我们可以覆盖继承2类的方法
- 19. VB> Reflection.Emit:继承超类并覆盖方法
- 20. 覆盖没有继承的类方法(python)
- 21. JavaScript继承对象覆盖其他继承对象
- 22. 2个不同的继承类覆盖
- 23. 覆盖Objective-C中的继承类型
- 24. 匿名类,继承和覆盖
- 25. 覆盖继承的行为
- 26. 休眠继承覆盖
- 27. C++继承函数覆盖
- 28. 覆盖模糊继承
- 29. 覆盖继承的成员?
- 30. 继承并覆盖CSS
注意,实际上JavaScript没有类的。 – pimvdb
您可能会发现阅读这些文章很有帮助:http://www.crockford.com/javascript/inheritance.html和http://ejohn.org/blog/simple-javascript-inheritance/ – scrappedcola
[Performing Inheritance在Javascript中](http://stackoverflow.com/questions/1586915/performing-inheritance-in-javascript)和[什么是在Javascript中的“继承”?](http://stackoverflow.com/questions/5027045/what-是继承式的JavaScript)。 –