javascript怎么定义类数组对象

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

javascript怎么定义类数组对象

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

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

例: arguments , NodeList , HTMLCollection , jQuery 等

类数组对象特性

立即学习“Java免费学习笔记(深入)”;

1、拥有 length 属性

var a=document.getElementsByTagName("p");a.__proto__;// HTMLCollection {} 属于类数组对象a.length;//62

登录后复制

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

a[0];//

登录后复制

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

a.slice;//undefined Error!a.pop;//undefined Error!

登录后复制

4、使用 instanceof 操作不属于 Array 

[] instanceof Array;//truea instanceof Array;//false

登录后复制

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

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

登录后复制

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

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

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

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

登录后复制

类数组对象优点

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

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

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

如何手动创建类数组对象

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

1、首先创建一个空对象

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

登录后复制

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

array_like[ 0 ] = "test 0";array_like[ 1 ] = "test 1";array_like[ 2 ] = "test 2";array_like[ 3 ] = "test 3";

登录后复制

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

//关键点array_like.length = 4;//为对象设置length属性array_like.splice = [].splice;//同时设置splice属性为一个函数

登录后复制

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

4、测试

//设定自定义属性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、全部代码:

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怎么定义类数组对象的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2709496.html

(0)
上一篇 2025年3月7日 20:41:02
下一篇 2025年2月18日 07:10:53

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JavaScript的内部方法有什么

    js内置函数是浏览器内核自带的,不用任何函数库引入就可以直接使用的函数。javascript内置函数一共可分为五类:1、常规函数;2、数组函数;3、日期函数;4、数学函数;5、字符串函数。 本教程操作环境:windows7系统、javasc…

    2025年3月7日
    200
  • javascript预编译做了啥

    javascript预编译做了:1、语法分析,就是引擎检查你的代码有没有什么低级的语法错误;2、预编译,简单理解就是在内存中开辟一些空间,存放一些变量与函数 ;3、解释执行,顾名思义便是执行代码了。 本教程操作环境:windows7系统、j…

    2025年3月7日
    200
  • 怎样在JavaScript添加图片

    想要使用JavaScript添加图片,可以先使用createElement()方法创建一个img元素,并向img元素的src属性赋图片的URL地址值;然后使用appendChild()方法将img元素添加到指定dom对象中即可。 本教程操作…

    2025年3月7日
    200
  • java和JavaScript闭包的区别是什么

    区别是:1、javascript的闭包其实就是定义在一个函数内部的函数(因为是子函数所以能够读取所在父函数的内部变量);2、java的闭包能够将一个方法作为一个变量去存储,这个方法有能力去访问所在类的自由变量。 本教程操作环境:window…

    2025年3月7日
    200
  • 如何理解javascript的对象

    在JS中或者说在面向对象的编程语言中,对象是一系列属性和方法的组合。一个属性包含属性名和属性值,这个值可以是任意类型的数据,也可以是个函数,这种情况下函数也被称为方法。 本教程操作环境:windows7系统、javascript1.8.5版…

    2025年3月7日
    200
  • JavaScript中blur的用法是什么

    JavaScript中blur的用法是“anchorObject.blur()”,blur是失去某个焦点的意思,多用在输入框input,失去焦点,光标有不会在那里了,不能够输入内容了。 本教程操作环境:windows7系统、javascri…

    2025年3月7日
    200
  • javascript用什么方法触发按钮的被点击事件

    btnObj.click()是真正地用程序去点击按钮,触发了按钮的onclick()事件,按钮不隐藏的时候是可以调用的按钮隐藏之后就不行了,设定隐藏不要使用Visiable属性,使用“style.display=none”。 本教程操作环境…

    2025年3月7日
    200
  • JavaScript怎么给CSS加样式

    添加方法:1、使用style对象;2、使用setAttribute;3、使用setProperty;4、通过改变伪元素父级的class来动态更改伪元素的样式;5、设置cssText;6、创建引入新的css样式文件;7、使用addRule和i…

    2025年3月7日
    200
  • servlet中定义的变量如何传给javascript函数

    js要从servlet获取数据,在需要数据时,js通过某种机制(如ajax)访问服务器的servlet,servlet根据js访问服务器时传递的参数(可以没有参数)在服务器上进行计算,然后返回结果,然后js可以对返回的数据进行处理。 本教程…

    2025年3月7日
    200
  • js怎么通过类来修改css样式

    在JavaScript中,可以利用setAttribute()方法来通过类修改css样式,只需要修改指定元素的“class”属性值即可,语法“元素对象.setAttribute(“class”, “新类名…

    2025年3月7日
    200

发表回复

登录后才能评论