看你不知道的JavaScript中卷 2.1数组时有个疑问.具体是这样的: 通过“借用”数组的方法可以很方便的处理字符串.可以“借用”数组的非变更方法,但不能“借用”数组的可变更方法. 用代码来描述就是: var a = 'foo'; // 数组的非变更方法,即不改变原有数组的方法 var b = Array.prototype.join.call(a, '-'); var c = Array.prototype.map.call(a, v => v.toUpperCase()).join()…
概述 今天在看书的时候看到Array.prototype.slice.call(arguments),有点看不懂,所以认真研究了一下,记录下来,供以后开发时参考,相信对其他人也有用. call 每一个函数都有一个call方法,它可以接受很多参数,其中第一个是这个函数的上下文,后面的是函数的参数.比如: function add(a, b) { return a + b; } add(3, 4); //7 add.call(null, 3, 4); //7 add.call(this, 3, 4)…
Array扩展方法: //author: Kenmu //created time: 2015-03-16 //function: 删除数组内以某值开头的字符串对象 Array.prototype.removeBeginWithVal = function (val) { for(var i=0, len = this.length; i < len; i++) { if(this[i].indexOf(val) != -1) { this.splice(i, 1); break; } } };…
来源:GBin1.com 有一种非常简单的客户端优化方式,就是用Array.prototype.join代替原有的基本的字符连接的写法.在这个系列的第一篇中,我在代码中使用了基本字符连接: htmlStr += '<li>' + item.text + '</li>'; 但是下面这段代码中,我用了优化: var items = []; ajaxResult.items.forEach(function(item) { // 构建字符串 items.push('<li>'…
欢迎访问我的个人博客:http://www.xiaolongwu.cn Array.prototype.slice.call(arguments)的作用为:强制转化arguments为数组格式,一般出现在框架活插件的源码中 如何理解 上面的代码等价于[ ].slice.call(arguments) 或者随便一个数组调用都行 [1,2,4].slice.call(arguments) 因为,前面的调用者的作用只是沿着原型链向上找,最终找到Array为止,slice为Array原型上的一个方法 s…
i8 不支持 Array.prototype.slice.call(params,0) params可以是 HTMLCollection.类数组.string字符串…
首先,slice有两个用法,一个是String.slice,一个是Array.slice,第一个返回的是字符串,第二个返回的是数组 在这里我们看第二个方法 1.在JS里Array是一个类 slice是此类里的一个方法   那么使用此方法应该Array.prototype.slice这么去用   slice从字面上的意思很容易理解就是截取(当然你不是英肓的话)   这方法如何使用呢?   arrayObj.slice(start, [end]) 很显然是截取数组的一部分 2.我们再看call  …
Array.prototype.slice.call(document.querySelectorAll('a'), 0)的作用就是将一个DOM NodeList 转换成一个数组. slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分.语法为arr.slice([begin[, end]]),其中arr可为string或Array.更多了解可以参考MDN document.querySelectorAll('a')获取了一个NodeList对象,它看起来像一个数组,你可以使用…
map 方法会给原数组中的每个元素都按顺序调用一次 callback 函数.callback 每次执行后的返回值组合起来形成一个新数组. callback 函数只会在有值的索引上被调用:那些从来没被赋过值或者使用 delete 删除的索引则不会被调用. 在我们日常开发中,操作和转换数组是一件很常见的操作,下面我们来看一个实例: 复制代码代码如下: var desColors = [],    srcColors = [        {r: 255, g: 255, b: 255 }, // W…
Array.prototype.slice.call(arguments)   我们知道,Array.prototype.slice.call(arguments)能将具有length属性的对象转成数组,除了IE下的节点集合(因为ie下的dom对象是以com对象的形式实现的,js对象与com对象不能进行转换) 如: var a={length:2,0:'first',1:'second'}; Array.prototype.slice.call(a);// ["first", &quo…