`
bellstar
  • 浏览: 150593 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

KISSY之KISSY.JS速记

阅读更多
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

    Kissy 是一个轻量级的JavaScript库,专为前端开发者设计,旨在简化Web开发过程,提高代码质量和效率。这个名为“Kissy 15天学会.zip”的压缩包,很可能是为了帮助初学者在15天内快速掌握Kissy框架的核心知识和实践...

    新增KISSY图片裁剪插件.zip

    KISSY 是一个轻量级的JavaScript库,旨在简化前端开发工作,它提供了丰富的组件和API,可以方便地进行各种前端任务,包括图片裁剪。"新增KISSY图片裁剪插件.zip"这个压缩包文件就是一个利用KISSY实现的图片裁剪功能...

    淘宝的KISSY编辑器ver.1.0

    KISSY是淘宝开源的一套JavaScript组件库,它旨在提供一套完整的前端开发解决方案,使得开发者能够快速、高效地构建Web应用。KISSY编辑器作为KISSY组件库的一部分,特别适用于那些需要轻量级、快速开发的项目。 在...

    基于KISSY的动画导航.zip

    在本项目中,“基于KISSY的动画导航.zip”是一个前端开发案例,它利用JavaScript库KISSY实现了一种动态的导航效果。KISSY是一个轻量级、模块化的JavaScript库,尤其适合中国开发者,因为它内置了对中文字符集的支持...

    kissy-1.4.8.zip

    kissy-1.4.8.zip,淘宝最新前端开发包

    kissy-1.4.8.rar

    Kissy 是一个强大的Web前端开发框架,源自阿里巴巴集团,旨在简化前端开发流程,提高开发效率。Kissy 1.4.8 版本是这个框架的一个稳定版本,它包含了丰富的功能和优化,使得开发者能够更好地应对复杂的前端项目需求...

    kissy文件 kissyteam-kissyteam.github.com-901d2cd.rar

    Kissy 是一个轻量级的 JavaScript 框架,由 KissyTeam 团队开发并维护。这个名为 "kissyteam-kissyteam.github.com-901d2cd.rar" 的压缩包文件,包含了 KissyTeam 在 GitHub 上的源代码仓库的一个特定版本,版本号为...

    KISSY实现横向Accordion效果.zip

    标题中的“KISSY实现横向Accordion效果”是一个前端开发中的实践案例,主要涉及JavaScript库KISSY的应用以及一种常见的UI组件——Accordion(手风琴)的实现。Accordion通常用于展示内容,用户可以逐个展开或折叠...

    基于KISSY的标签提示效果.zip

    在这个名为"基于KISSY的标签提示效果.zip"的压缩包中,包含了一个使用JavaScript库KISSY实现的标签提示效果的案例。KISSY是阿里巴巴开源的一款轻量级的JavaScript框架,旨在简化前端开发,提供丰富的组件和API,支持...

    draggable.js源码分析

    首先,draggable.js是基于KISSY框架实现的,KISSY是一个开源的JavaScript组件库,提供了丰富的DOM和事件操作API,为构建复杂Web应用提供了便利。在draggable.js中,主要利用了浏览器的事件模型和DOM操作,实现了拖拽...

    kissy 学习

    Kissy 是一个由淘宝开发的前端JavaScript库,它旨在简化Web开发,提高代码质量和性能。Kissy 提供了一种模块化的解决方案,使得开发者能够更好地组织和管理他们的代码,同时提供了丰富的组件来支持日常的Web开发任务...

    Kissy Suggest 自动提示例子

    在使用 Kissy Suggest 时,首先需要引入相关的 JS 文件,然后创建一个 Suggest 实例,设置数据源和配置参数。例如: ```javascript KISSY.use('sugg', function(S) { var suggest = new S.Suggest({ dataSource: ...

    基于KISSY的背景渐变特效.zip

    在本项目中,"基于KISSY的背景渐变特效.zip"是一个前端开发案例,它主要利用了JavaScript库KISSY来实现动态的背景颜色渐变效果。KISSY是阿里巴巴开源的一款轻量级的JavaScript框架,旨在提供一套完整的前端解决方案...

    JavaScript模板引擎Velocity.js.zip

    Velocity.js 是velocity模板语法的javascript实现。Velocity 是基于Java的模板引擎,广泛应用在阿里集 体各个子公司。Velocity模板适用于大量模板使用的场景,支持复杂的逻辑运算,包含 基本数据类型、变量赋值和...

    Web常用UI库 kissy.zip

    Kissy 是一个由淘宝开发并开源的JavaScript库,它的设计目标是为Web开发者提供一套全面、强大且易用的UI组件。Kissy 的出现旨在简化Web应用的开发过程,提高开发效率,尤其在构建复杂的前端界面时表现出强大的优势。...

    KISSY.Suggest 仿百度、淘宝输入提示补全功能的组件及实例

    **KISSY.Suggest** 是一个JavaScript库,用于实现类似于百度和淘宝的输入提示补全功能。这个组件是基于KISSY框架构建的,旨在提供高效、易用且可定制的自动补全体验,适用于网页上的搜索框或者任何需要动态建议的...

    kissy学习教程

    KISSY的学习资源主要包括官方网站和小组项目等,最新版本的KISSY种子文件seed.js可以通过指定的URL进行引入,例如版本1.4.7。通过使用KISSY.use()方法,可以加载并使用KISSY框架中的不同模块,比如node模块。 最后...

    从Kissy Gallery的重构谈JavaScript框架社区建设.pdf

    JavaScript 框架社区建设 - 从 Kissy Gallery 的重构谈起 Kissy 是阿里前端自主开发的 JavaScript 框架,它的生态圈基础建设有些薄弱,社区贡献代码的人寥寥无几。Kissy 的困境几乎是 JavaScript 框架的缩影。国内...

    JS开源编辑器 Kissy Editor

    **JS开源编辑器 Kissy Editor** 是一个专为前端开发者设计的轻量级文本编辑器,它具有良好的浏览器兼容性,能适应各种主流浏览器环境,包括Chrome、Firefox、Safari、Opera以及Internet Explorer等。Kissy Editor的...

    基于KISSY的四角遮罩特效.zip

    【标题】"基于KISSY的四角遮罩特效.zip" 涉及的主要知识点是JavaScript前端开发中的特效实现,特别是使用KISSY框架来创建四角遮罩效果。KISSY是一个开源的JavaScript库,它旨在提供一个轻量级、模块化、高性能的前端...

Global site tag (gtag.js) - Google Analytics