首页前端开发JavaScriptjavascript怎么定义类数组对象

javascript怎么定义类数组对象

时间2024-01-30 02:55:03发布访客分类JavaScript浏览484
导读:收集整理的这篇文章主要介绍了javascript怎么定义类数组对象,觉得挺不错的,现在分享给大家,也给大家做个参考。javascript定义类数组对象的方法是:1、首先创建一个空对象;2、为对象直接定义数字下标的属性;3、关键点,为对象设置...
收集整理的这篇文章主要介绍了javascript怎么定义类数组对象,觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

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

例: arguments , nodelist , HTMLCollection , jquery 等

类数组对象特性

1、拥有 length 属性

VAR a=document.getelementsbytagname("p");
    a.__PRoto__;
// HTMLCollection {
}
     属于类数组对象a.length;
    //62

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

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

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

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: javascript基于对象吗下一篇:浅谈Angular路由跳转中的navigat...猜你在找的JavaScript相关文章 html font标签如何设置字体大小?html font标签属性用法介绍2022-05-16vue3+TypeScript+vue-router的使用方法2022-04-16vue3获取当前路由地址2022-04-16如何利用React实现图片识别App2022-04-16JavaScript展开运算符和剩余运算符的区别详解2022-04-16微信小程序中使用vant框架的具体步骤2022-04-16Vue elementUI表单嵌套表格并对每行进行校验详解2022-04-16如何利用Typescript封装本地存储2022-04-16微信小程序中wxs文件的一些妙用分享2022-04-16JavaScript的Set数据结构详解2022-04-16 其他相关热搜词更多phpjavapython程序员loadpost-format-gallery

若转载请注明出处: javascript怎么定义类数组对象
本文地址: https://pptw.com/jishu/591947.html
浅谈Angular路由跳转中的navigateByUrl和navigate JavaScript的内部方法有什么

游客 回复需填写必要信息