• call与apply函数


    call与apply函数

    1、为什么需要call与apply函数

    Javascript中,每一个函数内部都有一个特殊的关键词this,其随着所处环境的不同其指向也是不同的。

    函数的内部其this也是指向window对象

    行内绑定:其函数内部的this指向window对象

    动态绑定:其函数内部的this指向当前正在操作的dom对象

     

    问题:我们可不可以人为的更改函数内部的this指向呢?

    答:可以,使用call或apply方法。

    2、call或apply函数的定义

    ① call([thisObj[,arg1[,arg2[,argN]]]])

    参数说明:

    thisObj :要指向的对象

    arg1,arg2…argN :参数列表

     

    ② apply([thisObj[,argArray]])

    参数说明:

    thisObj :要指向的对象

    argArray :参数数组,要求是一个数组

     

    问题:call方法与apply方法有何区别?

    答:call方法与apply方法功能是完全一致的,都是为了改变函数内部的this指向,唯一的不同就是语法的不同。

     

    例1:为每个对象绑定一个speak说话方法

    运行结果:报错,当前对象不支持此属性或方法。原因:① 我们并没有为p1对象定义一个speak方法 ② speak函数内部的this指向window对象

     

    例2:使用call或apply改进上题

    3、call与apply方法执行流程

    ① 改变了speak函数内部的this指向

    ② 执行speak函数

    4、参数使用

  • 相关阅读:
    CUDA ---- 线程配置
    IOC/DI-控制反转----AOP-面向切面编程-----SpringMvc框架
    @RequestMapping与@PostMapping等新注释的curd操作
    SSM框架整合
    webapp下jsp文件报错
    基于maven使用IDEA创建多模块项目
    CURD
    Linux终端常用命令
    pom文件-常用插件jar包
    application常用配置
  • 原文地址:https://www.cnblogs.com/nyxd/p/5364600.html
Copyright © 2020-2023  润新知