zoukankan      html  css  js  c++  java
  • 浏览器中的类数组判断+push实现方法的原理

    一,类数组:

      当你在对象中定义某些属性的时候,浏览器会自动帮你转化为类数组,

      即控制台中devTools猜测对象为类数组;

      当然跟数组还是有区别的,区别就在于你只能使用类数组中定义的方法和属性,而不能使用数组中的原生方法

      类数组在浏览器中的判定条件为:

      1,对象拥有length属性,且为整数;

      2,对象拥有继承自Array.prototype的splice函数

      如下:obj3

      

       结果:

      

    二、push

      上面的结果有一点特殊的地方,就是案例obj,

      第一次打印的时候,是一个正常对象,而第二次打印就变成了类数组,且在添加了一个key值为'0'的属性,故而得出结论

      当调用没有length值的对象中的push时,会自动生成length: 0 属性,且将参数设为key值为'0'的value值;

      而push函数的内部处理方式是什么呢?

      猜测为:

      1,添加下标为length的值,

      2,length属性+1,

      注意:如果length不存在或者不能被转化为一个数值,那么默认length值为0

      

  • 相关阅读:
    aspose.word 页脚插入图片图片浮动
    Aspose.Words插入表格,表格居中显示
    git常用命令
    openlayers之矢量加载标记点
    三、反射、动态加载
    openlayers交互之多边形
    openlayers轨迹回放
    openlayers交互之线
    关闭2000的默认共享
    开始blog,有点晚,但还是早
  • 原文地址:https://www.cnblogs.com/wangtong111/p/12444870.html
Copyright © 2011-2022 走看看