zoukankan      html  css  js  c++  java
  • apply的“非改变this“的用法

    说到apply,大家都是知道是改变this指向的,也都会立马和call联系在一起,MDN官网上也是如是说:

    其实我们在平常使用call和apply的时候,都是想到他们的改变函数的this的功能,

    正如MDN上面说的apply和call只有唯一一点区别,就是:apply方法的二个参数接受的是“参数数组”!

    也就是说:apply的第二个“参数数组”最终会打散被调用apply的函数所调用;

    因此我们也可以利用这一特性,进行数组的打散的操作,如MDN中所述:

    当然我们这里也可以使用ES6的扩张语句,如下:

    之所以要写这篇文章就是告诫自己:思维不要太局限,就像觉得apply就只能用于改变this的指向的功能。当我们咋一看Math.max.apply(null, arr)这种会蒙圈,其实这里就是省去了自己展开了数组的操作。

    在发现疑惑的时候,可以放空自己的过去的知识,重新阅读API。重新去思考这个问题。

    就像自己以前做物理题目,脑子里永远别记忆题型,脑子里只需要记住公式和原理,所有的题目都是去思考分析再解答,以不变应万变!!而不是把题目归类,再回忆改类题型的解题方法。

  • 相关阅读:
    Microsoft Word 段前距设置和页眉设置
    JavaScript 跨域小总结
    JavaScript 闭包系列二(匿名函数及函数的闭包)

    JavaScript 变量作用域
    JavaScript 闭包系列一
    JavaScript 继承
    JavaScript 对象的创建
    MySQL(2): 窗口函数备份与恢复性能优化权限管理
    组建LAN
  • 原文地址:https://www.cnblogs.com/zhilingege/p/7682206.html
Copyright © 2011-2022 走看看