javascript之调用被覆盖的方法
来源:互联网 发布:12315 如何投诉淘宝 编辑:程序博客网 时间:2024/04/28 03:40
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之调用被覆盖的方法
- 构造方法中不应调用可被覆盖的方法
- 构造器决不能调用可被覆盖的方法
- 12.5.2 访问被覆盖的方法
- 继承的约束:构造器不可调用被覆盖的方法
- 方法可以被覆盖,但是属性不会被覆盖
- Java静态方法不能被覆盖
- Java 方法被覆盖时异常特点
- JS中子类中如何调用父类的同名方法(继承时候,父类的同名方法被覆盖了)
- angularjs循环调用http时,传递的参数被覆盖的问题
- 恢复被覆盖的linux引导
- 恢复被覆盖的存储过程 oracle
- 求区间没被覆盖的点
- 解决grub被覆盖的问题
- eclipse取回被覆盖的代码
- oracle恢复被覆盖的存储过程
- 如何 恢复被覆盖的文件
- 被覆盖了的文件怎么恢复
- 今天看了页面单元格内文字换行就找了下,如何不设置宽度,不换行
- 未来八种人将被社会淘汰
- 网站需要加的一些应用
- 程序员:伤不起的三十岁
- Zend Framework 2.0 正式版发布及新功能介绍
- javascript之调用被覆盖的方法
- hdu 1525 || poj 2348 Euclid's Game(博弈找规律)
- C#反射:让私有成员无所遁形
- OpenGL中的Blend
- 不要一辈子靠技术生存
- 【C/C++ 机试】约瑟夫环--报数
- 程序员:编程能力vs职业技能,哪个更重要
- ALV 报表的主要过程
- Intent中的四个重要属性——Action、Data、Category、Extras