我正在寻找一个简单的例子,在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. Python - 继承和方法覆盖
- 4. C# - 继承,覆盖
- 5. Javascript继承方法覆盖不起作用
- 6. JavaScript继承对象覆盖其他继承对象
- 7. 覆盖Objective-C中的继承类型
- 8. 无法继承和覆盖ArrayAdapter
- 9. C++:覆盖public/private继承
- 10. 覆盖继承的行为
- 11. 覆盖继承的成员?
- 12. CSS覆盖/不继承
- 13. 方法B用于方法A;在继承类中,使A被覆盖B
- 14. JavaScript - 原型继承而不覆盖基类
- 15. JavaScript子类化和方法覆盖
- 16. 覆盖子/继承形式的父django表单的clean()方法
- 17. 我可以在继承中只覆盖一种方法吗?
- 18. 继承jQuery UI的对话框,并调用覆盖的方法
- 19. 继承,覆盖方法和构造函数
- 20. 覆盖PHP中没有继承的实例方法?
- 21. 继承现有的Web部件并覆盖方法
- 22. 代码契约与继承(上覆盖的方法前提)
- 23. 如何使用继承覆盖equals()方法?
- 24. Java文档覆盖方法不会继承DOD
- 25. node.js对象继承覆盖对象方法
- 26. Java的泛型方法的继承和覆盖规则
- 27. Javascript类继承
- 28. JavaScript类继承
- 29. (覆盖||扩展)JavaScript方法
- 30. 的Javascript,从覆盖方法
注意,实际上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)。 –