$super
Prototype 定义的关键字,用于在子类中调用基类的方法。
在子类重写基类的方法时,有时需要调用基类的方法,为实现这个目的,Prototype 提供了 $super 关键字,可以获取基类同名方法的引用。
$super 关键字的使用非常简单:在子类需要重写的方法中,将 $super 作为方法的第一个参数,Prototype 在检测到该关键字后,
会自动将该关键字指向基类的同名方法,然后使用 $super(基类方法参数)
就可以调用基类中被覆盖的方法了。
var baseClass = Class.create({
initialize: function(name){
this.name = name;
},
show: function(msg){
alert(msg + ' ' + this.name);
}
});
var subClass = Class.create(baseClass, {
show: function($super, msg){
$super(msg + '\n我是子类。');
}
});
var subObj = new subClass('ORain');
subObj.show('Hello, World!');
注意:在调用子类的 show 方法时,只需要传递一个参数,$super 由 Prototype 处理。