`
kun10
  • 浏览: 12976 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
  • lz12366: 没有safia环境,没法测试、、上面代码divs.apply存 ...
    YArray.test

YUI3的YUI构造函数

    博客分类:
  • YUI
阅读更多
YUI的构造函数


var YUI = function() {
        var i = 0,
            Y = this,//用Y来保存YUI实例
            args = arguments,
            l = args.length,
            instanceOf = function(o, type) {//定义了instanceOf方法,用来看o是否为对象并且是否为某一个类型的实例
                return (o && o.hasOwnProperty && (o instanceof type));
            },
            gconf = (typeof YUI_config !== 'undefined') && YUI_config;//如果YUI_config有定义那么赋值给gconf

        if (!(instanceOf(Y, YUI))) {
//如果Y不是一个YUI的实例,就新new一个YUI实例
            Y = new YUI();
        } else {
//如果Y是YUI的实例就调用Y的_init方法
            Y._init();
            if (YUI.GlobalConfig) {//GlobalConfig是一个全局的配置,对所有的YUI实例都进行应用
                Y.applyConfig(YUI.GlobalConfig);
            }
//YUI_Config是一个页面级的配置。
            if (gconf) {//gconf保存的是页面级的配置,对同一个页面的所有YUI实例都起作用
                Y.applyConfig(gconf);
            }

            // bind the specified additional modules for this instance
//如果没有参数传给YUI函数,那么就直接执行_setup方法
            if (!l) {
                Y._setup();
            }
        }
//如果有参数,那么对参数逐个调用applyConfig方法,之后在调用_setup方法
        if (l) {
            // Each instance can accept one or more configuration objects.
            // These are applied after YUI.GlobalConfig and YUI_Config,
            // overriding values set in those config files if there is a '
            // matching property.
            for (; i < l; i++) {
                Y.applyConfig(args[i]);
            }

            Y._setup();
        }

        Y.instanceOf = instanceOf;//把instancOf方法绑到YUI实例上面

        return Y;
    };



这里面调用了几个Y实例的方法
_init
_setup
applyConfig
这几个方法是在YUI构造器的prototype
稍后做分析
分享到:
评论

相关推荐

    《YUI使用文档》汉语版的yui学习材料

    其中,`lang.extend`用于实现对象间的继承,不同于传统的面向对象编程,它不会自动调用父对象的构造函数,而是通过`superclass`属性形成链式继承。`lang.augment`则是对象属性的复制,它不进行深拷贝,而是创建引用...

    经典的YUI 示例中文文档

    与传统面向对象语言的继承不同,使用此方法时,父对象的构造函数不会被自动调用。子对象会保存一个对其父对象的引用,从而形成链式继承关系。在YUI的某些版本中,`YAHOO.lang.extend`和`YAHOO.extend`指向同一个函数...

    js封装可使用的构造函数继承用法分析

    本文实例讲述了js封装可使用的构造函数继承用法。分享给大家供大家参考。具体如下: 先来看下面这段代码 (YUI)库所用的方法: 代码如下:function extend(Child, Parent) {  var F = function(){};  F.prototype...

    Javascript的匿名函数讲解

    在JavaScript中,定义函数主要有三种方式:函数关键字(function)语句定义、函数字面量(Function Literals)和Function()构造函数。函数字面量和Function()构造函数定义的函数可以没有名称,也就是我们说的匿名...

    JavaScript中匿名函数的用法及优缺点详解_.docx

    JavaScript中的匿名函数是一种不具有名称的函数,它们主要通过函数表达式或Function构造函数来创建。匿名函数在JavaScript中有着广泛的应用,特别是在处理模块化、防止全局变量污染、以及实现函数式编程等方面。 1....

    YUI 读码日记之 YAHOO.lang.is*

    在较早的版本中,`YAHOO.lang.isArray` 使用了构造函数的字符串表示来检查,这在 Safari 浏览器中存在一个已知的 Bug,因为它会误判某些对象实例为数组。从 2.2.0 版本开始,`isArray` 通过检查对象的 `length` 属性...

    学习YUI.Ext 第三天

    `constructor`属性也可以用来判断对象的类型,但它不返回布尔值,而是返回对象的构造函数。例如,`x.constructor == String`可以检查`x`是否由`String`构造函数创建。 在JavaScript中,`var i = {}`声明了一个新的...

    yuicompress:演示 - 如何使用 Coldfusion 的 YUI JavaScriptCompressor

    我想将该类传递给另一个类的构造函数:即com.yahoo.platform.yui.compressor.JavaScriptCompressor 。 当 jar 文件yuicompressor-2.4.8.jar驻留在THIS.javaSettings LoadPaths成员中指定的子目录中时,它工作得很...

    YUI的Tab切换实现代码

    这些配置可以通过构造函数或者后期设置来调整。 ```javascript var tab = new Tab(['t1', 't2', 't3'], ['s1', 's2', 's3'], { triggerEvent: 'mouseover', slideEnabled: true }); ``` 2. **事件监听**:`Tab` 类...

    Javascript的匿名函数小结

    3. **Function构造函数**:`var fnMethodName = new Function('x','alert(x);')` 其中,函数字面量和Function构造函数可以创建无名函数,即匿名函数。 **二、函数字面量与Function构造函数的区别** 1. **递归**:...

    学习YUI.Ext第五日--做拖放Darg&amp;Drop

    在示例中,我们创建了一个新的构造函数`Draggable`,它继承自`YAHOO.util.DD`。`startDrag`方法在拖动开始时被调用,将元素的透明度降低至0.5,而`endDrag`方法在拖放结束时恢复元素的透明度并将其重新定位到初始...

    Promise支持库Ypromise.zip

    脚本会添加一个全局的 Promise 构造函数以供调用 从 npm 中获取该库对应的 Node.js 模块 作为 AMD 模块使用 作为 YUI 库的一部分使用 标签:Ypromise

    YAHOO UI 工具库

    新对象(子对象)继承了原对象(父对象)的所有属性和方法,但父对象的构造函数不会被自动调用。父对象的引用存储在子对象的`superclass`属性中,形成链式继承关系。 ##### `YAHOO.lang.augment` `YAHOO.lang....

    编写可维护的JavaScript(中文)

    1.6.3 构造函数 1.7 直接量 1.7.1 字符串 1.7.2 数字 1.7.3 null 1.7.4 undefined 1.7.5 对象直接量 1.7.6 数组直接量 第2章 注释 2.1 单行注释 2.2 多行注释 2.3 使用注释 2.3.1 难于理解的代码 2.3.2...

    javascript 写类方式之九

    在JavaScript中,`instanceof`运算符用于检查一个对象是否属于某个类,`constructor`属性则指向对象的构造函数。在上述例子中,我们可以通过它们来验证`p`是否是`YAHOO.test.Person`的实例: ```javascript console...

    web前端问题[归类].pdf

    - JavaScript的继承通常通过子构造函数调用父构造函数(使用`call`或`apply`)以及克隆父构造函数原型上的方法实现。 10. **AJAX**: - AJAX(异步JavaScript和XML)的工作原理涉及创建AJAX对象,设置数据传输...

    Javascript开发之js压缩篇.docx

    这段代码定义了一个`CompressedStream`类,它继承自`ServletOutputStream`,并在构造函数中创建了一个`GZIPOutputStream`对象,用于进行GZIP压缩。当数据写入`CompressedStream`时,实际上是在写入`GZIPOutputStream...

    jquery 源码分析

    3. **元素查找**:在构造函数内部调用`jQuery.find`方法来查找匹配的选择器。 4. **元素封装**:将查找到的DOM元素封装成jQuery对象。 ##### 4.2 选择器解析 jQuery使用一套复杂的选择器引擎来解析选择器字符串。...

    EXtJs3.2.docx

    组件的构造函数可以接收一个包含配置属性的对象,这些属性定义了组件的行为和外观。例如,创建一个具有特定标题和高度的面板: ```javascript var user = { title: "我是弹出框", height: 200 }; var panel = new...

Global site tag (gtag.js) - Google Analytics