Javascript 类数组类的定义相关知识
来源:互联网 发布:mac怎么调整图片方向 编辑:程序博客网 时间:2024/06/06 17:34
// 自己定义一个类数组对像 var arrayExtensible = (function(){ //用于检测类对像中是否可以设置length属性 function TMP(){ }; TMP.prototype = []; var t = new TMP(); TMP.prototype = null; t.length = 1; //IE 6, IE7是不能给数组对像设置length属性,同时返回0 return t.length === 1; })() var toString = {}.toString; function isArray(it){ return toString.call(it) == '[object Array]'; } function mixin(dest, source){ //在这里没有考虑对IE6,7 bug, toString, valueOf不会出现在 for/in中, 即使在source中重新定义, for(var name in source){ dest[name] = source[name]; } } function ArrayLike(array){ var isNew = this instanceof ArrayLike && arrayExtensible; if(typeof array === "array"){ array = new Array(array); } var nodeArray = isArray(array) ? array : arguments; if(isNew || !nodeArray.sort){ var target = isNew ? this : [], //如果不是new 创建对像,target赋值为[]; l = target.length = nodeArray.length; // 必须设置 target.length, 如则这个对像不会有length;属性 for(var i = 0; i < l; i++){ target[i] = nodeArray[i]; } if(isNew) return target; nodeArray = target; //将arguments 转换为 真实的数组 target; } mixin(nodeArray, alp); return nodeArray; } var alp = ArrayLike.prototype = arrayExtensible ? [] :{} alp._wrap = function(){ consoele.log('aa') } alp.toString = function(){ return this.join(','); //必须定义toString 方法,因为Array.prototype.toString不能应该到对像上 } //example var ab = new ArrayLike('aaa', 'bbbb'); ab.push(1) console.log(ab instanceof ArrayLike) var ab1 = ArrayLike(['a','b']); console.log(ab1 instanceof ArrayLike) // false, 它是一个真实的数组,只是有ArrayLike的方法 var a = ab.slice(0,2); console.log(a) // 还应该定义forEach方法, slice, splice方法(不应该返回数组, 而应该返回一个ArrayLike对像, 可以查看dojo/query.js的NodeList定义)
0 0
- Javascript 类数组类的定义相关知识
- JavaScript里类的相关知识
- 数组的相关知识
- 数组的相关知识
- JavaScript的相关知识
- javascript的相关知识
- 宏定义的相关知识
- 宏定义的相关知识
- javascript数组的定义
- JavaScript的数组定义
- JavaScript网页编程之------数组相关知识
- 总结数组的相关知识
- javascript 类的定义
- hive的数据定义相关语法知识
- JavaScript定义数组的新方法
- javascript中数组的定义
- javascript中数组的定义
- javascript中数组的定义
- 名流私照泄露,iCloud真的安全吗?
- print_color.h
- zebra关于线程管理的相关函数的简要功能介绍
- 编写C函数的技巧
- 工具类:通过shape来设置圆角矩形背景
- Javascript 类数组类的定义相关知识
- 转载 Android wakelock 学习总结第三篇
- 图论算法(4) --- TSP旅行商问题 求最短回路(acm)
- 数据结构之桶排序
- ViewPager在Xml中引用写法
- CSS十八条技总结
- 一些应届IT求职常考的笔试题举例
- 黑马程序员——Java基础——面向对象(1)封装
- hdu 4592 Boring Game