通过Object.prototype.toString.call()判断数据类型的原理

前端之家收集整理的这篇文章主要介绍了通过Object.prototype.toString.call()判断数据类型的原理前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

<table class="text"><tr class="li1">
<td class="ln"><pre class="de1">1
2
3
4
5
6
7
8
9
10
@H_301_1@</td>
<td class="de1"><pre class="de1">在toString方法调用时,会执行下面的操作步骤:
 

  1. 获取this对象的[[Class]]属性的值.
     
  2. 计算出三个字符串"[object ",第一步的操作结果Result(1),以及 "]"连接后的新字符串.
     
  3. 返回第二步的操作结果Result(2)
    其中[[Class]]是一个内部属性,所有的对象(原生对象和宿主对象)都拥有该属性.在规范中,[[Class]]是这么定义的:
    所有宿主对象的[[Class]]属性的值可以是任意值,甚至可以是内置对象使用过的[[Class]]属性的值.[[Class]]属性的值可以用来判断一个原生对象属于哪种内置类型.需要注意的是,除了通过Object.prototype.toString方法之外,本规范没有提供任何其他方式来让程序访问该属性的值(查看 15.2.4.2)
    调用call方法则将this绑定到了当前要判断类型的数值上@H_301_1@</td>
    </tr></table>

猜你在找的程序笔记相关文章