javascript怎么定义类数组对象


本文摘自PHP中文网,作者醉折花枝作酒筹,侵删。

javascript定义类数组对象的方法是:1、首先创建一个空对象;2、为对象直接定义数字下标的属性;3、关键点,为对象设置length属性和splice属性为数字和函数。

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

js中类数组对象很多,概念简单的讲就是看上去像数组,又不是数组,可以使用数字下标方式访问又没有数组方法。

例: arguments , NodeList , HTMLCollection , jQuery 等

类数组对象特性

1、拥有 length 属性

1

2

var a=document.getElementsByTagName("p");

a.__proto__;// HTMLCollection {} 属于类数组对象a.length;//62

2、可以使用数字下标的方式访问对象

1

a[0];//<p class="aspNetHidden">…</p>

3、不能使用数组原型的方法(如 slice , pop 等)

1

2

a.slice;//undefined Error!

a.pop;//undefined Error!

4、使用 instanceof 操作不属于 Array

1

2

[] instanceof Array;//true

a instanceof Array;//false

5、可以转换为真数组对象

1

2

var arr = Array.prototype.slice.call(a);

arr instanceof Array;//true

PS:注意在IE8下部分对象无法使用slice方法转换为真数组对象。

建议使用jquery提供的 $.makeArray() 方法转换类数组对象

6、通常可定义有其他自定义属性

1

a.item;//function item() { [native code] }

类数组对象优点

关于优点我相信不用太多描述,可以让js和其他后台语言拥有相同的操作方式。

如C#的某些list集合,可以使用数字下标 list[0] 来访问或是使用字符串名称 list['name'] 来访问同一对象

同时还拥有各种自定义方法,自定义属性,看jquery对象的优雅的访问方式即可知是如此美妙的对象。

如何手动创建类数组对象

回归主题,如何手动创建类数组对象。

1、首先创建一个空对象

1

var array_like = {};//创建一个空对象

2、为对象直接定义数字下标的属性,这在其他语言里是绝对不允许的,对象属性不能使用数字开头,但JS里是可以的,甚至使用中文都可以

1

2

3

4

array_like[ 0 ] = "test 0";

array_like[ 1 ] = "test 1";

array_like[ 2 ] = "test 2";

array_like[ 3 ] = "test 3";

3、关键点,为对象设置length属性和splice属性为数字和函数

1

2

3

//关键点

array_like.length = 4;//为对象设置length属性

array_like.splice = [].splice;//同时设置splice属性为一个函数

PS:设定splice属性其实是为了欺骗浏览器的控制台,另其显示出数组的模样,可以参考这里

4、测试

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

//设定自定义属性

array_like.test0=array_like[0];

array_like.test1=array_like[1];

//直接输出

console.log( array_like );//['test 0','test 1'...]

//类型

console.log( $.type( array_like ) );//"object"

//数字下标访问

console.log( array_like[ 0 ] );//"test 0"

//自定义属性访问

array_like.test0;//"test 0"

//不是数组对象

array_like instanceof Array;//false

//转换为真数组对象

var Arr=Array.prototype.slice.call(array_like);

Arr instanceof Array;//true

5、全部代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

var array_like = {};

 

array_like[ 0 ] = "test 0";

array_like[ 1 ] = "test 1";

array_like[ 2 ] = "test 2";

array_like[ 3 ] = "test 3";

 

array_like.length = 4;

array_like.splice = [].splice;

 

console.log( array_like );

console.log( $.type( array_like ) );

console.log( array_like[ 2 ] );

【推荐学习:javascript高级教程

以上就是javascript怎么定义类数组对象的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

javascript如何关闭网页

javascript中sort()方法怎么用

h5新特性的用法:监听app自带的返回键

怎样使用javascript date format方法

javascript如何分割字符串

如何关掉javascript

content-type几种值的区别及用法介绍

聊聊javascript人脸识别技术

一文了解javascript中的类型化数组

一起看看 php javascript 语法对照

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...