zoukankan      html  css  js  c++  java
  • 非常适合新手的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    我的博客,来看吧!

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

  • 相关阅读:
    作业
    动手动脑
    作业
    《大道至简》第二章读后感
    《大道至简》第一章读后感
    局域网内网站发布(三)
    局域网内网站发布(二)
    局域网内网站发布(一)
    管理系统
    台式机没有声音
  • 原文地址:https://www.cnblogs.com/jiebba/p/6530304.html
Copyright © 2011-2022 走看看