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

  • 相关阅读:
    递归的小实例
    try-catch-finally实例
    集合的排序(正序,倒序,从大到小排序)
    数组的排序(sort和冒泡)
    拦截器的使用,不登录用户不能进行其他操作
    把日志从数据库导出到Excel表格中(poi)
    Java 对Excel进行导入操作
    java 面试题集锦
    端口被占用解决办法
    (转)Java 最常见的 200+ 面试题汇总
  • 原文地址:https://www.cnblogs.com/mtl-key/p/14487356.html
Copyright © 2011-2022 走看看