如何在javascript中应用虚函数

前端之家收集整理的这篇文章主要介绍了如何在javascript中应用虚函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在C#中,我们有关于抽象方法的概念,以及如何在 Javascript中应用它.例如,我有一个例子:
  1. function BaseClass() {
  2. this.hello = function() {
  3. this.talk();
  4. }
  5. this.talk = function() {
  6. alert("I'm BaseClass");
  7. }
  8. };
  9.  
  10. function MyClass() {
  11. this.talk = function() {
  12. alert("I'm MyClass");
  13. }
  14. BaseClass.call(this);
  15. };
  16.  
  17. MyClass.prototype = new BaseClass();
  18.  
  19. var a = new MyClass();
  20. a.hello();​

当对象是MyClass的实例时,BaseClass中的函数hello()如何从MyClass调用函数do().警报结果必须是“我是MyClass”.请帮我.谢谢.

解决方法

您可能希望首先调用“Base”构造函数
  1. function MyClass() {
  2. BaseClass.call(this);
  3. this.talk = function() {
  4. alert("I'm MyClass");
  5. }
  6. }

否则BaseClass.talk将覆盖MyClass.talk.

作为旁注,在javascript中使用“类”的概念相当适得其反,因为这不是这种语言的工作方式. JS使用原型继承,即从其他对象派生新对象,而不是从“类”派生.此外,JS中的每个函数都是C语义中的​​“虚拟”,因为它的this指针取决于函数调用方式,而不是函数的定义位置.

猜你在找的JavaScript相关文章