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();
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();
相关文章推荐
- 谷歌用并行JavaScript编译提升浏览器性能
- embed 元素 用javascript 控制 play stop的实现
- el,jstl使用
- Js中 关于top、clientTop、scrollTop、offsetTop的用法
- ♫【Underscore.js】
- JSON资料整理
- JSON.stringify 语法讲解
- JSoup真好用
- 在Java中运行javascript脚本示例
- GitHub的css/js文件给墙了的解决方法
- 数据类型和Json格式
- Javascript高级技巧分享
- AJAX初步接触
- javascript雪花效果 注释版
- JavaScript 原型 继承
- JavaScript 构造函数
- js脚本给text动态赋值,如何监听:oninput,onpropertychange的区别
- JavaScript全局函数
- JSP 禁止页面缓存,修复浏览器后退造成的权限 BUG
- js根据15,18位身份证号获取生日与性别