澳门葡京手机版:读码日记之

var patterns = {
    HYPHEN: /(-[a-z])/i,
澳门葡京手机版:读码日记之。    ROOT_TAG: /^body|html$/i
};

batch: function(el, method, o, override) {
    // 让 el 始终为 HTMLElement
    el = (el && (el.tagName || el.item)) ? el : Y.Dom.get(el); 

batch: function(el, method, o, override) {
    // 让 el 始终为 HTMLElement
    el = (el && (el.tagName || el.item)) ? el : Y.Dom.get(el); 

先绕最初部非常多的 if…else (其实正是概念 toCamel 与 getStyle 七个函数) – 由于浏览器的兑现不合併,才招致那样劳碌的事态,回头可以聊聊这个代码。

var toCamel = function(property) {
    // 若无 -[a-z] 字母,则直接重回
    if ( !patterns.HYPHEN.test(property) ) {
        return property;
    }

    if (!el || !method) {
        return false;
    }

    if (!el || !method) {
澳门葡京手机版,        return false;
    }

上边大家在 YAHOO.util.Dom 类中看看有何宝藏。如今合计已经稳步的解体,小编看见个函数说个函数。

    // 如若有缓存,直接回到替换后的值
    if (propertyCache[property]) {
        return propertyCache[property];
    }

    //  分明再次来到的对象
    var scope = (override) ? o : window;

    //  明确再次回到的靶子
    var scope = (override) ? o : window;

// 基本上能够以为是 document.getElementById 的翻版
get: function(el) {
    // 假诺已经是 HTMLElement ,那么就平素回到
    if (el && (el.nodeType || el.item)) {
        return el;
    }

    // 使用正则替换
    var converted = property;
    while( patterns.HYPHEN.exec(converted) ) {
        converted = converted.replace(RegExp.$1,
                RegExp.$1.substr(1).toUpperCase());
    }

    // 看起来是个 HTMLElement 大概不是 Array
    if (el.tagName || el.length === undefined) {
        return method.call(scope, el, o);
    } 

    // 看起来是个 HTMLElement 只怕不是 Array
    if (el.tagName || el.length === undefined) {
        return method.call(scope, el, o);
    } 

    // 就算是字符串,那么就回去有其一 ID 的 Element
    if (YAHOO.lang.isString(el) || !el) {
        return document.getElementById(el);
    }

    // 存入缓存
    propertyCache[property] = converted;
    return converted;
};在 YAHOO.util.Dom 中,getStyle 函数思考了越多分歧浏览器包容性方面的主题素材,代码如下

    var collection = []; 
    for (var i = 0, len = el.length; i < len; ++i) {
        collection[collection.length] = method.call(scope, el[i], o);
    }

    var collection = []; 
    for (var i = 0, len = el.length; i < len; ++i) {
        collection[collection.length] = method.call(scope, el[i], o);
    }

    // 看起来是个数组,循环调用自身,获取 Eelement
    if (el.length !== undefined) {
        var c = [];
        for (var i = 0, len = el.length; i < len; ++i) {
            c[c.length] = Y.Dom.get(el[i]);
        }

相关文章