var obj = {
'1':'a',
'2':'b',    
'length':'2',
push:Array.prototype.push
};
obj.push('c');
浏览器执行以上脚本后, obj 的 length 属性会变为 3; obj[ 2]  的值是 c; obj[ 3]  的值是 undefined;

push 方法把值添加到数组中。
push 方法有意具有通用性。该方法和 call() 或 apply() 一起使用时,可应用在类似数组的对象上。push 方法根据 length 属性来决定从哪里开始插入给定的值。如果 length 不能被转成一个数值,则插入的元素索引为 0,包括 length 不存在时(上面代码去掉“'length':'2',”时,obj的length属性会被创建并被赋值为1,obj[0]为push进去的c,r若再obj.push('g');则length为2,obj[0]=‘c’,obj[1]='g',obj[2]='b',obj[3]='undefined',再push一个,则obj[2]的值会被覆盖,obj[3]='undefined',)。当 length 不存在时,将会创建它。

唯一的原生类数组(array-like)对象是 Strings,尽管如此,它们并不适用该方法,因为字符串是不可改变的。
当调用该方法时,新的 length 属性值将被返回。

所以说,push会根据对象length属性的值去确定插入的位置,即this[i+n] = %_Arguments(i)
所以在原题中obj.length值为2,调用obj.push("c")时,会发生obj[2]="c"的情况,所以最后 obj[2]就变成了'c',而不是原来的'b'
当然了,push方法最后会根据传入的参数个数多少,即arguments.length来返回new_length,并赋值给obj.length

javascript中对象使用push相关推荐

  1. javascript中对象_了解JavaScript中的承诺

    javascript中对象 我向您承诺,到本文结束时,您将更好地了解JavaScript. 我与JavaScript有一种"爱与恨"的关系. 但是尽管如此,JavaScript一直 ...

  2. JavaScript中对象(Object)的方法

    JavaScript中对象方法总结: 资料来源:网道-互联网开发文档 [https://wangdoc.com/] 1.Object.getPrototypeOf(Object) Object.get ...

  3. 删除javaScript中对象的属性

    删除javaScript中对象的属性 语法 delete 对象.属性;

  4. javascript中对象的assign()方法

    javascript中对象的assign()方法 Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象. 语法: Object.assign( ...

  5. JavaScript 中对象的属性类型

    对象的属性类型 JavaScript 中的对象的属性包括数据属性和访问器属性,在 JavaScript 引擎的内部实现中定义了用于描述属性(property)的特性(attribute).规范中将特性 ...

  6. javascript中对象、JSON格式数据、创建对象的方式、数据类型分类及特点

    对象 对象指:具体的一个实物,javascript中对象是指一组没有顺序的属性和方法的集合,所有的事物都是对象,例如:函数,数组,字符串等.属性指事物的特征,一般为名词表示:方法指对象的行为,一般用动 ...

  7. javascript 无法修改 数组中对象_谈谈JavaScript中对象建立(Object)

    在这篇文章中我将会着重说明如何创建JavaScript里的对象(Object). 对象(Object)是什么? 在开始介绍如何创建对象前,我们要知道对象是什么.对象(Object)简单地来说,就是一堆 ...

  8. JavaScript中对象数据存储

    JS中对象数据存储 对象数据存储在堆栈中.栈的数据读取,写入速度快,但是存储的内容较少.堆的读取和写入速度慢,但是存储的内容多.举个例子来说就像电脑中内存和硬盘,内存就像栈,需要经常获取,写入速度比较 ...

  9. JavaScript中对象的构造方法

    第一种方式: 工厂方法  能创建并返回特定类型的对象的工厂函数(factory function). Javascript代码  function createCar(sColor){ var oTe ...

最新文章

  1. 影像组学视频学习笔记(34)-使用3D Slicer软件提取影像组学特征、Li‘s have a solution and plan.
  2. 【Flutter】Flutter 拍照示例 ( 拍照并获取照片源码示例 | image_picker: ^0.5.2 版本 )
  3. WGS84经纬度坐标转北京54高斯投影地方坐标流程
  4. django language_Django基础学习-创建第一个Django项目
  5. ORACLE 执行计划2
  6. 使用diskpart命令为windows7创建分区
  7. t30智能插座怎么设置_如何设置ConnectSense智能插座
  8. Mr.J-- jQuery学习笔记(二十二)--入口函数
  9. select、poll和epoll的总结对比
  10. 前端笔记 | CSS盒子模型
  11. C# XElement
  12. 190307每日一句
  13. android学习笔记之系统签名
  14. Mysql 语法执行顺序
  15. 小甲鱼 c语言 17课
  16. 苏州新导智能养老:老人智能药箱+养老院人员定位
  17. 电脑桌面下栏和计算机里面全黑,电脑桌面下面菜单栏变黑条了,为什么?
  18. MarkDown学习备忘录
  19. 文案类网页没有投诉按钮,屏蔽微信投诉按钮
  20. __stack_chk_fail栈检查失败

热门文章

  1. peazip 64 linux,Ubuntu 16.04中下载安装PeaZip 6.5.0档案管理器
  2. php下载框架里的图片,使用GD、ImageGick与PHP框架的图片处理技术
  3. 机器学习:使用matlab实现曲线线性回归拟合并绘制学习曲线
  4. vscode提示 拓展主机在过去5分钟内意外终止了3次问题解决...
  5. 为电子书包配置透明网关+缓存服务器
  6. conversionpattern(conversionpattern 自定义字段)
  7. cdf会员购那么多,哪个才是真的?附所有邀请码及剁手攻略
  8. 八自由度垂向模型车辆悬挂参数优化
  9. 泛微OA的介绍以及实施计划
  10. 问题:关于贴友分类菜单的实现