在mootools中可以使用initialize方法进行类初始化构构造如下(源码包中的basic_class.htm):
function AnnounceClass()
{
var Cat = new Class({
initialize: function(name){
this.name = name;
}
});
var myCat = new Cat('Micia');
alert(myCat.name); //alerts 'Micia'
var Cow = new Class({
initialize: function(){
alert('moooo');
}
});
var Effie = new Cow($empty); //不会alert 'moooo', 因为初始化方法被$empty方
法 overridden
}
AnnounceClass();
在Extends中可以有同名的方法, 也会有一个 parent 属性, 这将允许您调用其他的 overridden 方法:
function extendsClass()
{
var Animal = new Class({
initialize: function(age){
this.age = age;
},
setName: function(name){ //此函数会在下面的类中被重写
this.name = name;
}
});
var Cat = new Class({
Extends: Animal,
initialize: function(age){
this.parent(age); //调用Animal的initalize
},
setName: function(name){
this.name = name + " cat";
}
});
var myCat = new Cat(20);
myCat.setName('Micia');
alert(myCat.name); //Alerts 'Micia'.
alert(myCat.age); //Alerts 20.
}
extendsClass();
Implements 与
Extends 类似, except that it overrides properties without inheritance.
可用于在多个
类中实现一系列默认属性.(注:Implements 不会重写同名方法,而只会调用Implements所实现类中的同名方法,如
下所示):
function implementsClass()
{
var Animal = new Class({
initialize: function(age){
this.age = age;
}
});
var Cat = new Class({
Implements: Animal,
setName: function(name){
this.name = name
}
});
var myAnimal = new Cat(20);
myAnimal.setName('Micia');
alert(myAnimal.name); //Alerts 'Micia'.
}
implementsClass();
好了,今天的内容就到这里了。
下载DEMO,请点击这里。
tag:mootools, 1.2
作者:代震军, daizhj
原文链接:http://www.cnblogs.com/daizhj/articles/1291589.html
posted on 2008-09-16 12:48
代震军 阅读(378)
评论(0) 编辑 收藏 网摘