zoukankan      html  css  js  c++  java
  • javascript中call()、apply()、bind()的用法理解

    一、bind的用法

    第一个:obj.showInfo('arg','arg_18');中传的2个参数通过showInfo方法改变的是obj下中的name和age

    第二个:obj.showInfo.bind(this)('bind','bind_18');中bind要传的name和age是通过一个一个传的形式,然后通过showInfo方法改变的是window下的name和age

    注:bind 返回的是一个新的函数,你必须调用它才会被执行

    二、apply的用法

    第一个:obj.showInfo('arg','arg_18');中传的2个参数通过showInfo方法改变的是obj下中的name和age

    第二个:obj.showInfo.apply(this,['apply','apply_18']);中apply要传的name和age是通过数组的形式,然后通过showInfo方法改变的是window下的name和age

    二、call的用法

    第一个:obj.showInfo('arg','arg_18');中传的2个参数通过showInfo方法改变的是obj下中的name和age

    第二个:obj.showInfo.call(this,'call','call_18');中call要传的name和age是通过一个一个传的形式,然后通过showInfo方法改变的是window下的name和age

    总结:
        1、call 、bind 、 apply 这三个函数的第一个参数都是 this 的指向对象
        2、call的参数是直接放进去的,第二第三第n个参数全都用逗号分隔
        3、apply的所有参数都必须放在一个数组里面传进去
        4、bind除了返回是函数以外,它的参数传递方式和call 一样。    
        当然,三者的参数不限定是string类型,允许是各种类型,包括函数 、 object 等等!
  • 相关阅读:
    BZOJ 1072: [SCOI2007]排列perm
    BZOJ 1071: [SCOI2007]组队
    HDP集群部署
    使用Kubeadm部署kubernetes集群
    Docker 私有仓库
    Docker Compose
    Dockerfile使用
    Docker应用部署(Mysql、tomcat、Redis、redis)
    Docker 容器的数据卷 以及 数据卷容器
    Docker 服务、镜像、容器简单命令使用
  • 原文地址:https://www.cnblogs.com/ycg-myblog/p/10161209.html
Copyright © 2011-2022 走看看