zoukankan      html  css  js  c++  java
  • ES5中改变this指向的三种方法

    ES5中提供了三种改变函数中this指针指向的方法,分别如下

    1.call()

    var obj = {username:"孙悟空"};
    //没有任何修饰的调用函数,函数中的this指向全局对象,此处为window
    function foo(para1,para2){
        console.log(this,para1,para2)
    }
    //利用call()改变foo函数中this的指向,让它指向obj
    foo.call(obj,"传递的第一个参数","传递的第二个参数")
    ————————————————
    版权声明:本文为CSDN博主「隐世半仙」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_42560017/article/details/91904929

    2.apply()

    apply()的用法与call()相似,唯一的不同在于传参的形式

    foo.apply(obj,["传递的第一个参数","传递的第二个参数"])

    此时控制台也会打印出
    在这里插入图片描述

    3.bind()

    call()和apply()都是立即执行函数,而bind()并不会立即执行,而是先返回改变this指向后的函数

    var bar = foo.bind(obj);
    bar("传入的第一个参数","传入的第二个参数");

    运行结果如下:
    在这里插入图片描述
    可见this指向已经改变,并且bind()传参的形式与call()相同

  • 相关阅读:
    学习使用linux下tags文件
    uboot常用命令详解
    U-boot中TFTP 解释
    eth0: ERROR while getting interface flags: No such device 没有eth0 有其他的eth
    取消挂载 umount 时出现的 “Device is busy”
    Linux的log日志功能
    oracle的安装
    SOA架构设计分析
    立方体模型
    质量属性的六个常见属性场景(淘宝网)
  • 原文地址:https://www.cnblogs.com/mtl-key/p/14487356.html
Copyright © 2011-2022 走看看