JS对象中数字命名的属性名(jQuery对象原来真的是对象)

标题很奇怪,这不废话嘛~

平时要从一组jQuery对象里面取原生DOM对象,常用的方法是使用$('div')[0]这样来取得其中的第一个div,久而久之,我习惯性地把$('div')当成是一个数组了,当然虽然知道它是对象,但是脑袋就是转不过弯来。

<div>1</div>
<div>2</div>
<div>3</div>

对于上面的HTML代码,使用$('div')可以取得含有这3个DOM对象的一个jQuery对象,要取第三个div就使用$('div')[2],看起来很像是取数组的第三个值是不是,是不是,是不是?看一下这个jQuery对象是怎么构成的吧:

Console出来的jQuery对象

首先再次确认了它是一个对象,然后,发现,原来所谓的123只是一个属性名。

对象的属性访问方式有两种,一种是obj.prop1,一种是obj["prop1"],不过如果使用前者是有限制的,那就是这个属性名只能是合法的标识符,即使用字母或者_或者$开头,同时也不能是保留字,比如class;后者则没有这些限制。

对应这个例子,就不难理解啦。

参考链接:javascript object property name as number
本文地址:JS中数字命名的属性名

标签: jquery, 对象数字属性名

已有 2 条评论

  1. 我看汤哥都是用get(2)好像这样写的.

    1. Bob Bob
      get: function( num ) { return num == null ? this.toArray() : ( num < 0 ? this[ this.length + num ] : this[ num ] ); }

      一样的嘛,而且理论上说,[num]还快一些。

添加新评论