【学习笔记】面试中遇到的盲区(2)
来源:互联网 发布:大腿内侧黑色素知乎 编辑:程序博客网 时间:2024/06/07 05:35
一、数组中的reduce、reduceRight方法的参数以及其使用
reduce(callback(previous,current,index,arr),initial),reduce和reduceRight方法得使用一样,只是后者是逆序对数组进行遍历。方法中一共接受两个参数,一个数回调函数,一个是初始值,用于初始化回调中的第二个参数,该参数是可选的。在没有initial参数时则previous的初始值为 数组的第一个元素, current为第二个,否则previous为initial,current为数组第一个元素,同时index表示的current的索引,arr表示数组对象。
同时上面中的回调函数的返回值将作为下一次循环时的previous
利用以上两个方法可以对数组进行扁平化:
[[1,2],[3,4],[5,6,7]].reduce(function(arr1,arr2){return arr1.concat(arr2)});
两个方法非常适合进行迭代操作的情况。
二、闭包中对象函数的引用赋值和普通对象函数的引用赋值
var value = "window";function say() { console.log(value); console.log(this.value);}var obj1 = (function(){ var value = "1-1"; return{ value:"1-2", say:function () { console.log(value); console.log(this.value); } }})()var obj2 = (function () { var value = "2-1"; return{ value:"2-2", say:function () { console.log(value); console.log(this.value); } }})()say();obj1.say();obj2.say();obj1.say = say;obj1.say();obj1.say = obj2.say;obj1.say();//输出结果为windowwindow1-11-22-12-2window1-22-11-2
上面注意最后一组输出结果,其中2-1的输出是因为闭包引起的,即使将obj2的say方法赋给了obj1,但是该方法对于obj2中value行程的闭包还是存在的。
阅读全文
0 0
- 【学习笔记】面试中遇到的盲区(2)
- 【学习笔记】面试中的一些盲区
- 技术学习道路的盲区与误区
- 技术学习道路的盲区与误区
- 技术学习道路的盲区与误区
- 技术学习道路的盲区与误区
- Android面试盲区记录
- 面试中遇到的问题
- 面试中遇到的问题
- 面试中遇到的问题
- 面试中遇到的问题
- 面试中遇到的问题
- 面试中遇到的问题
- 面试中遇到的问题
- 面试中遇到的问题
- 面试:----面试中遇到的问题
- 笔记:学习Qt过程中遇到的一些小笔记
- java面试常遇到的(2)
- 1136:矩阵转置
- 倍增法
- 5分钟搞定android混淆
- 点击div显示 文件选择框
- 延迟加载(Lazyload)三种实现方式
- 【学习笔记】面试中遇到的盲区(2)
- WPF(MVVM)中 工具窗口绑定主窗口ViewModle,
- HSL
- jQuery 理解Ajax操作
- HTML表单tr、th、tb的区别
- 《Windows核心编程》读书笔记三 内核对象
- 编程 错误处理和调试技巧
- SpringMVC+Mybatis+log4g打印sqlyu
- PHP技术讨论群