分享

mootools-1.2 学习笔记之类实现

 寂寞如故 2014-09-03
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();
复制代码

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多