您的位置:首页 > Web前端 > JavaScript

2014-02-25_javascript_Class

2014-02-25 15:45 495 查看
var Class=function(parent){
var klass=function(){
this.init.apply(this,arguments);
}

if(parent){
var subclass=function(){};
subclass.prototype=parent.prototype;

klass.prototype=new subclass;

}
klass.prototype.init=function(){};

//prototype's alias
klass.fn=klass.prototype;

klass.fn.parent=klass;

//class properties

klass.extend=function(obj){
var extended=obj.extended;
for(var i in obj){
klass[i]=obj[i];
}

if(extended) extended(klass);

}

//instance properties

klass.include=function(obj){
var included=obj.included;

for(var i in obj){
klass.fn[i]=obj[i];
}

if(included) included(klass);

}
return klass;

}
var Person=new Class();
Person.prototype.init=function(){
//do something init

};
Person.extend({
find:function(id){/* ... */};

exists:function(id){/* ... */};

extended:function(klass){
console.log(klass," was extended!");
};

});
Person.include({
save:function(id){/* ... */};

destory:function(id){/* ... ..*/};
included:function(klass){
console.log(klass," was included!");
};
});
var person=new Person();
person.save();

//原型继承
var Animal=function(){};
Animal.prototype.breath=function(){
console.log("breath");
};
var Dog=function(){};

Dog.prototype=new Animal;
Dog.prototype.wag=function(){
console.log("wag tail");

};
var dog=new Dog;
dog.wag();
dog.breath();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: