如何扩展javascript类

时间:2010-09-18 19:28:24

标签: javascript class inheritance

为什么Child类没有echo()方法?

Parent = function(){
    this.name = 'abc';
}

Parent.prototype.echo = function(){
    alert(this.name);
}

Child = function(){
    $.extend(this,  Parent);
}

var x = new Child();

x.echo();

我应该怎样做才能从Javascript继承父类?

3 个答案:

答案 0 :(得分:7)

您需要将Child的原型设置为Parent

function Parent() {
    this.name = 'abc';
}

Parent.prototype.echo = function () {
    alert(this.name);
}

function Child() {

}

Child.prototype = new Parent()

var x = new Child();

x.echo();

答案 1 :(得分:0)

我假设你使用jQuery。 jQuery扩展系统使用对象,而不是“类”,请参阅:http://api.jquery.com/jQuery.extend/

答案 2 :(得分:0)

  • javascript中没有“类”,只有对象和原型继承
  • 父级,子级不是类,它们是函数(以及对象)
  • 在Child中,“this”指的是全局对象(浏览器的“窗口”)
  • 使用Child.prototype = new Parent()