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()相同

  • 相关阅读:
    Vi与Vim
    Linux文件压缩、打包、备份
    Linux文件与目录操作
    Linux文件权限与目录
    Linux学习笔记
    Android——复制项目出现Application Installation Failed
    《鸟哥的Linux私房菜》学习笔记0——计算机概论
    Android——自定义多击事件
    《跟孩子学Python》
    《简明Python教程》读书笔记
  • 原文地址:https://www.cnblogs.com/mtl-key/p/14487356.html
Copyright © 2011-2022 走看看