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

  • 相关阅读:
    技术服务支持
    如何将Java Web项目部署到服务器上
    移动端前端开发——微信左上角返回按钮(JQMobile)
    Mac下phpstorm 浏览器出现 502 bad gateway 解决办法
    mysql sql语句大全
    复制自己的ssh-key
    PhpStorm环境搭建
    max下搭建XAMPP
    Cocopods第三方库管理工具创建Swift项目&OC项目就
    Swift-闭包
  • 原文地址:https://www.cnblogs.com/mtl-key/p/14487356.html
Copyright © 2011-2022 走看看