• Object.prototype.toString方法


    //判断是否为函数
    function isFunction(it) {
      return Object.prototype.toString.call(it) === '[object Function]';
    }
    
    //判断是否为数组
    function isArray(it) {
      return Object.prototype.toString.call(it) === '[object Array]';
    }
    
    //判断各种类型的基函数
    function isType(type) {
      return function(obj) {
        return Object.prototype.toString.call(obj) === "[object " + type + "]";
      }
    }
    //借助以下四个方法来判断: 比如 isObject({a:1, b:2})
    var isObject = isType("Object");
    var isString = isType("String");
    var isArray = Array.isArray || isType("Array");
    var isFunction = isType("Function");

    ECMAScript 3:

    在Object.prototype.toString方法被调用时,会执行以下的操作步骤:

    1. 获取this对象的[[Class]]属性的值;

    2.  计算出"[object ", 第1步的操作结果Result(1),以及 "]"连接后的新字符串.

    3.  返回第2步的操作结果Result(2).

    ECMAScript 5:

    在Object.prototype.toString方法被调用时,会执行以下的操作步骤:

    1. 如果this的值为undefined,返回"[object Undefined]".

    2. 如果this的值为null,返回"[object Null]".

    3. O成为调用ToObject(this)的结果.

    4. class成为O的内部属性[[Class]]的值.

    5. 返回"[object ",class, 以及 "]"连接后的新字符串.

    兼容性:

      为了兼容ie6这类比较古老的游览器,Object.prototype.toString.call(obj) 通常用作"Boolean Number String Function Array Date RegExp Object"这8种数据类型的判断。

      null 和 undefined 建议不要用Object.prototype.toString.call(obj)来判断。

  • 相关阅读:
    分页系统
    ORM-数据处理
    Django的用法
    登录cookie写法
    MySQL数据库的安装创建
    前端弹框编写
    ADB常用指令
    Appium环境配置
    Jmeter中传递cookie值
    Jmeter从文件中读取参数值
  • 原文地址:https://www.cnblogs.com/langtao/p/2961521.html
Copyright © 2020-2023  润新知