https://github.com/kissyteam/kissy/blob/1.1.6/src/seed/kissy.js
(function(S, undef) {
var meta = {
/**
* copy s到r,如果over, s[p]则overwrite r[p],
* 如果有whitelist,则只从s中copy whitelist中声明的p
* @return r
*/
mix: function(reciveObj, sourceObj, over, whitelist) {
...}
}
host = this,
seed = host[S] || {},
guid = 0,
EMPTY = '';
if(!seed.mix) seed.mix = meta.mix;
S = host[S] = seed; // shortcut
S.mix(S, {
// The host of runtime environment.
__HOST: host,
// S.app() with these members.
__APP_MEMBERS: ['namespace'],
__APP_INIT_METHODS: ['__init'],
version: '@VERSION@',
/**
* 依次mix o1、o2至on,mix的时候直接overwrite
*/
merge: function(/*o1,o2...on*/) {
var o = {}, i, l = arguments.length;
for (i = 0; i < l; ++i) {
S.mix(o, arguments[i]);
}
return o;
},
/**
* mix copy的是s[p]到r[p], augment是copy s.prototype[p]到r.prototype[p]
* 如果s没有prototype的话,就copy s[p]
*/
augment: function(/*receiveObj, srcObj1, srcObj2, ..., over, whitelist*/) {
...},
/**
* r extend s, r.prototype overwrite mix px, r overwrite mix sx
* r.superclass = s.protype
*/
extend: function(r, s, px, sx) {
if (!s || !r) return r;
var OP = Object.prototype,
O = function (o) {
function F() {
}
F.prototype = o;
return new F();
},
sp = s.prototype,
rp = O(sp);
r.prototype = rp;
rp.constructor = r;
r.superclass = sp;
// assign constructor property
if (s !== Object && sp.constructor === OP.constructor) {
sp.constructor = s;
}
// add prototype overrides
if (px) {
S.mix(rp, px);
}
// add object overrides
if (sx) {
S.mix(r, sx);
}
return r;
},
__init: function() {
this.Config = this.Config || {};
this.Env = this.Env || {};
this.Config.debug = '@DEBUG@';
},
namespace: function() { ...},
/**
* 为目标对象o(host[name]对象或name对象)实现APP功能,
* 先从KISSY mix KISSY.__APP_MEMBERS,
* 然后依次在o上执行KISSY.__APP_INIT_METHODS
* 最后mix sx()的返回对象 或 sx对象
* @param {String|Object} name
* @param {Function|Object} sx
*/
app: function(name, sx) {
var isStr = S.isString(name),
O = isStr ? host[name] || {} : name,
i = 0,
len = S.__APP_INIT_METHODS.length;
S.mix(O, this, true, S.__APP_MEMBERS);
for(; i < len; ++i) S[S.__APP_INIT_METHODS[i]].call(O);
S.mix(O, S.isFunction(sx) ? sx() : sx);
isStr && (host[name] = O);
return O;
},
log: function(msg, cat, src) { ...},
error: function(msg) {...},
guid: function(pre) { return (pre || EMPTY) + guid++; }
});
S.__init();
})('KISSY');
分享到:
相关推荐
Kissy 15天学会.zip欢迎下载!!!
基于JavaScript的前段案例作品
基于JavaScript的前段案例作品
基于YUI3开发, 虽然不支持UBB,但是可以快速的生成HTML文本内容。 适合轻量的快速的开发使用。 同样推荐。
kissy-1.4.8.zip,淘宝最新前端开发包
高发展前途的web前端开发利器--kissy,中文文档。拥有该文档后不必再上网到处找,一切尽在其中。
Velocity.js 是velocity模板语法的javascript实现。Velocity 是基于Java的模板引擎,广泛应用在阿里集 体各个子公司。Velocity模板适用于大量模板使用的场景,支持复杂的逻辑运算,包含 基本数据类型、变量赋值和...
kissy模块化实践.taobao 前端架构Kissy介绍
书写特效 kissyteam-kissyteam.github.com-901d2cd.rar
Web常用UI库 kissy ,kissy 是淘宝一个开源的 JavaScript 库,包含的组件有:日历、图片放大镜、卡片切换、...
淘宝发布开源编辑器:KISSY Editor,和我们在 WordPress 后台使用的富文本编辑器 TinyMCE 一样,它可以让我们在线编辑和格式化文本,但是相比 TinyMCE KISSY Editor 更加轻巧,更加适合国内的网络环境。 KISSY ...
从Kissy Gallery的重构谈JavaScript框架社区建设.pdf
淘宝JS框架. 需要有YUI,JQUERY等框架的使用基础.
NULL 博文链接:https://nopainnogain.iteye.com/blog/838608
js KISSY框架阿里云滑动下拉导航菜单效果代码 js KISSY框架阿里云滑动下拉导航菜单效果代码 js KISSY框架阿里云滑动下拉导航菜单效果代码 js KISSY框架阿里云滑动下拉导航菜单效果代码
Kissy学习教程.rarKissy学习教程.rarKissy学习教程.rarKissy学习教程.rar
基于JavaScript的前段案例作品
KISSY.Suggest 仿百度、淘宝输入提示补全功能的组件及实例!值得下载看看!资源免费,大家分享!! 更多免费资源 http://ynsky.download.csdn.net/
KISSY是一个开源的javascript项目,其主体是一个前端UI开发框架,即KissyUI。本文所述的kissy是仅指其内核部分的kissy.js中的语言与框架设计思想。KISSY项目的开源网站是:http://kissyteam.github.com/ kissy怎么...
基于JavaScript的前段案例作品