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

      

  • 相关阅读:
    23种设计模式之原子模式
    23种设计模式之外观模式(门面模式)
    Docker指令记录
    mysql 引擎
    G1调优随笔
    jvm面试题 新生代和 老年代的区别
    java虚拟机栈 相关操作
    .net大法总章
    .net趣味面试题总结
    IOC控制反转-依赖注入
  • 原文地址:https://www.cnblogs.com/wangtong111/p/12444870.html
Copyright © 2011-2022 走看看