zoukankan      html  css  js  c++  java
  • jQuery原理系列-工具函数

    jquery源码中有很多精妙的实现,对于我们每天都在使用的东西,一定要知其原理,如果遇到不能使用jquery环境,也能自己封装原生的代码实现。

    1.检测类型

    众所周知typeof 不能用来检测数据,会返回object,而instanceof和constructor在使用跨页面调用时(iframe子页面调用父页面),两个页面的构造器函数引用不相等会判断不准确。

    而Object对象原型中的toString方法隐藏了这个实现,把它挖掘出来:

    Object.prototype.toString.call(obj).replace(/^[object (.+)]$/, '$1').toLowerCase();

    2.extend扩展对象

    最简单的是用for..in遍历一下A对象,赋值给B对象,不过jquery的extend可以传无限多个参数进行合并,自然是用到了arguments对象

    var extend = function(out) {

    out = out || {};

    for (var i = 1; i < arguments.length; i++) {
    if (!arguments[i])
    continue;

    for (var key in arguments[i]) {
    if (arguments[i].hasOwnProperty(key))
    out[key] = arguments[i][key];
    }
    }

    return out;
    };

    extend({}, objA, objB);

    3.数组的一些工具方法

    1)makeArray :可以用Array.prototype.concat.call(obj);

    2) each:可以用es5的forEach,兼容低IE就自己for循环了

    3) grep:用es5的filter实现

    4) inArray:用es5的indexOf实现

  • 相关阅读:
    CodingTrip
    CodingTrip
    Linux下面查找含有特定的字符的文件
    Linux下TCP/IP协议的Socket编程
    显示Apache服务器里面访问量排在前10的ip地址
    c语言的详细编译过程
    WebStorm设置编辑器中的字体大小
    Sublime多行编辑快捷键
    Aptana 中去掉“Missing semicolon”提醒
    公认的媒体类型
  • 原文地址:https://www.cnblogs.com/windyfancy/p/5179522.html
Copyright © 2011-2022 走看看