javascript之调用被覆盖的方法
2012-09-19 00:00
274 查看
jquery博客这两天在看原生的javascript,看到一些以前没关注到的,留点字迹放博客里,方便以后看看。
当子类定义一个和超类的方法具有相同名字的方法时候,子类的方法会覆盖超类的方法。
在创建已有类的子类时候,这是相对常见事哦。比如,任何时候,当为一个类定义toString()方法时,就会覆盖掉Object的toString()方法。
一个方法覆盖另一个方法的时候,前者经常是要增强被覆盖方法的功能,而不是完全替换其功能。要是做到这一点,方法必须能够调用它所覆盖掉的方法。从某个意义上说,这是一种方法链,就像构造函数链一样。可是调用一个被覆盖的方法比调用一个超类构造函数更难。
弄个例子。比如Rectange类已经定义一个toString()方法
Rectange.prototype.toString=function(){
return “["+this.width+","+this.height+"]“;
}
如果给Rectange一个toString()方法,就必须覆盖掉PositionedRectange中的toString()的方法,以便子类的实例中有一个字符表示能够反映其所有的属性,而不只是width和height属性。PositionedRectange是一个很简单的类,其toString()方法可以只是返回所有属性的值。但是,为方便举例子,让我们处理position属性并将width属性和height属性委托给其超类。
Rectange.prototype.toString=function(){
return “(“+this.x+”,”+this.y+”)”+
Rectange.prototype.toString.apply(this);
}
超类的toString()的实现是超类的原型对象的一个属性。注意,无法直接调用该方法。使用apply()来调用该方法,这样,就可以指定应该基于哪个对象来调用它。
转自
jquery http://www.jqueryba.com/316.html
当子类定义一个和超类的方法具有相同名字的方法时候,子类的方法会覆盖超类的方法。
在创建已有类的子类时候,这是相对常见事哦。比如,任何时候,当为一个类定义toString()方法时,就会覆盖掉Object的toString()方法。
一个方法覆盖另一个方法的时候,前者经常是要增强被覆盖方法的功能,而不是完全替换其功能。要是做到这一点,方法必须能够调用它所覆盖掉的方法。从某个意义上说,这是一种方法链,就像构造函数链一样。可是调用一个被覆盖的方法比调用一个超类构造函数更难。
弄个例子。比如Rectange类已经定义一个toString()方法
Rectange.prototype.toString=function(){
return “["+this.width+","+this.height+"]“;
}
如果给Rectange一个toString()方法,就必须覆盖掉PositionedRectange中的toString()的方法,以便子类的实例中有一个字符表示能够反映其所有的属性,而不只是width和height属性。PositionedRectange是一个很简单的类,其toString()方法可以只是返回所有属性的值。但是,为方便举例子,让我们处理position属性并将width属性和height属性委托给其超类。
Rectange.prototype.toString=function(){
return “(“+this.x+”,”+this.y+”)”+
Rectange.prototype.toString.apply(this);
}
超类的toString()的实现是超类的原型对象的一个属性。注意,无法直接调用该方法。使用apply()来调用该方法,这样,就可以指定应该基于哪个对象来调用它。
转自
jquery http://www.jqueryba.com/316.html
相关文章推荐
- javascript之调用被覆盖的方法
- javascript之调用被覆盖的方法
- javascript如何调用objective-c的方法
- 在JRE1.4.2以上版本中解决Javascript调用已签名Applet方法时提示没有权限问题
- C#后台调用前台javascript的五种方法
- 【收藏】Javascript调用后台代码的方法
- Javascript动态方法调用与参数修改的问题
- JavaScript 函数在浏览器中直接调用的方法
- C#调用javascript的几种方法
- 使用ajax,javascript中调用后台的方法
- asp.net javascript客户端调用服务器端方法
- JavaScript 中调用 Kotlin 方法实例详解
- Android高手进阶教程(二十)之---Android与JavaScript方法相互调用!
- 继承的约束:构造器不可调用被覆盖的方法
- java中重载方法与覆盖方法调用规则
- (js)JavaScript调用本地android的方法
- asp.net中javascript调用.net方法
- C# 开发小技巧(一)如何在前台用JavaScript调用后台C#方法
- javascript动态方法调用与参数修改的问题
- javascript调用asp.net用户控件中的方法