• 非常适合新手的jq/zepto源码分析02


      function isPlainObject(obj) {
        return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype
      }
    

      

    Object.getPrototypeOf(obj)    返回 obj 的原型

    这是查看是不是简单的对象

       function likeArray(obj) {
                var length = !!obj && 'length' in obj && obj.length,
                    type = $.type(obj)
    
                return 'function' != type && !isWindow(obj) && (
                        'array' == type || length === 0 ||
                        (typeof length == 'number' && length > 0 && (length - 1) in obj)
                    )
            }
    

      

    'length' in obj      对象obj是否有length属性

    是否为类数组

    compact(array)   去除array里面的空数组

    flatten(array)    如果array数组是个Z对象数组,则合并

     camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) }
    

      

    str.replace(reg/str,rep/fun)  用rep替换匹配到的字符串

    如果rep里面有$ , 则代表匹配的子表达式等 ,fun(match,$1,$2)  match匹配的字符,$1第一个返回的值

    转为驼峰命名

    dasherize(str)  将驼峰命令转为 abcAac  -- >  abc-abc

    uniq(array)  查看这个键值是否唯一,

    classRE(name)  添加样式的正则到classCashe里面

    maybeAddPx(name,value)    查看name这样式属性是否需要添加px,并返回

         function defaultDisplay(nodeName) {
                var element, display
                if (!elementDisplay[nodeName]) {
                    element = document.createElement(nodeName)
                    document.body.appendChild(element)
                    display = getComputedStyle(element, '').getPropertyValue("display")
                    element.parentNode.removeChild(element)
                    display == "none" && (display = "block")
                    elementDisplay[nodeName] = display
                }
                return elementDisplay[nodeName]
            }
    

      

    getComputedStyle(elem)  获取元素的样式列表,只读

    getPropertyValue(name)  获取元素的某个样式属性  

    设置节点默认display属性

         function Z(dom, selector) {
                var i, len = dom ? dom.length : 0
                for (i = 0; i < len; i++) this[i] = dom[i]
                this.length = len
                this.selector = selector || ''
            }
    

      

    类数组的dom的list对象

    代码仅供参考,具体功能可以自己扩展。

    http://www.cnblogs.com/jiebba/p/6530304.html 

    http://www.cnblogs.com/jiebba    我的博客,来看吧!

    如果有错误,请留言修改下 哦!

  • 相关阅读:
    linux一键安装filemanager和caddy
    搭建owncloud
    Linux下解压命令大全
    linux虚拟机调整分辨率
    [Javascript] ==与===区别
    [转]ActiveX控件安全初始化之一:实现ISafeObject接口
    C# 温故而知新:Stream篇(—)
    [转]C# 温故而知新:Stream篇(二)
    【转】C# 温故而知新:Stream篇(三)
    [转]在企业应用开发中遵循开源协议
  • 原文地址:https://www.cnblogs.com/jiebba/p/6530304.html
Copyright © 2020-2023  润新知