加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
klass.js 1.13 KB
一键复制 编辑 原始数据 按行查看 历史
jwyuef 提交于 2014-12-08 12:04 . commit
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() {}
klass.fn = klass.prototype;
klass.fn.parent = klass;
// 上下文代理
klass.proxy = function(callback) {
var self = this;
return (function() {
return callback.apply(self, arguments);
})
}
klass.fn.proxy = klass.proxy;
// 类扩展
klass.extend = function(obj) {
var extended = 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;
};
// example
var Person = new Class();
Person.prototype.init = function() {
//code here
}
Person.extend({
find: function() {},
exists: function() {}
});
Person.include({
save: function() {},
destroy: function() {}
});
Person.find();
var p1 = new Person();
p1.save();
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化