zoukankan      html  css  js  c++  java
  • apply、call、bind的区别

    apply、call、bind这三种方法一般用来改变this指向。

    apply()方法接收两个参数,一个是函数运行的作用域this,另一个是参数数组

    call()方法接收两个参数,一个是函数运行的作用域this,传递给函数的参数一定要列举出来。

    语法:调用一个对象的一个方法,另一个对象替换当前对象

    apply([thisObj[,argArray]])

    call([thisObj[,arg1[,arg2[,…,argn]]]])

    说明:如果没有提供任何一个参数,那么Global对象将用作thisObj。

    bind和call、apply方法不同,bind函数不会执行,而只是返回一个改变了上下文的函数副本,而call和apply是直接执行函数,bind也可以有多个参数,并且参数可以执行的时候再次添加,但是要注意的是,参数是按照形参的顺序进行的。

    apply结合Math可以提取数组的最大最小值:

      var a = [1,3,4,56,23,4];
      Math.max.apply(null,a) ————//56
      Math.min.apply(null,a) ————//1

    传null或undefined时,将是JS执行环境的全局变量。浏览器中是window,其它环境(如node)则是global

  • 相关阅读:
    Hexo yilia 主题启用及相关设置
    Hexo Next 主题启用及相关设置
    值得一用的 Windows 软件清单
    ES6新特性2
    ES6新特性1
    手写promise第三天
    手写promise第一天
    Generator异步函数
    函子Functor
    柯里化函数组合的学习
  • 原文地址:https://www.cnblogs.com/hmycheryl/p/8671956.html
Copyright © 2011-2022 走看看