zoukankan      html  css  js  c++  java
  • 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)来判断。

  • 相关阅读:
    linux_ssh用户枚举猜测
    Nginx 主配置文件参数详解
    OSI七层模型
    linux-Python升级安装
    qt多线程
    python 对串口的操作
    keil 下模拟u-boot的cmd功能
    <转载>CentOS 6.3下Samba服务器的安装与配置
    Magento开发完整指南
    飞书信(Facebook Messenger)是什么?
  • 原文地址:https://www.cnblogs.com/langtao/p/2961521.html
Copyright © 2011-2022 走看看