<script type="text/javascript">
//一、使用了new和构造函数创建类,创建一个新类的函数第一步是创建自己的类模拟库
var Class = function(){
var klass=function(){
this.init.apply(this,arguments);
};
klass.prototype.init=function(){};
return klass;
};
var Person = new Class;
Person.prototype.init = function(){
//person 的实例进行初始化
};
//用法
var person = new Person;
//二、在javascript中给类添加函数有两种方法,分别是:1、在构造函数中给类添加函数;2、在构造函数的原型上添加实例属性,需要用到prototype
Person.find = function(id){ };//在构造函数中给类添加实例
Person.prototype.breath = function(){ };//在构造函数的原型上添加实例属性,需要用到prototype
Person.fn = Person.prototype;//一种常见的模式是给类的prototype起一个别名fn,写起来更简便
Person.fn.run = function(){ };//此时,Person有fn,find,prototype三个直接方法,它的原型上有run,breath两个方法
//三、上面两种方法不切实际且不够简洁,很难一眼分辨出静态属性和实例属性,所以用到函数extend()和include()来添加属性
var Class = function(){
var klass = function(){
this.init.apply(this,arguments);
};
kalss.prototype.init = function(){};
klass.fn = klass.prototype;//定义原型别名
klass.fn.parent = klass;//定义类的别名
//给类添加属性
klass.extend = function (obj){
var extened = obj.extended;
for(var i in obj){
klass[i] = obj[i];
}
if(extended)extended(klass);
};
//给实例添加属性
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.extend({
find: function(id){ },
exists: function(id){ }
});
</script>
类
最新推荐文章于 2023-04-08 17:04:54 发布