js中apply/call/bind的使用和区别

js中apply/call/bind的使用和区别1、apply/call call与apply 用于显示的设置函数的上下文(或上级作用域),两个方法作用一样都是将对象绑定到this,只是在传递

大家好,欢迎来到IT知识分享网。js中apply/call/bind的使用和区别"

1、apply/call

call与apply 用于显示的设置函数的上下文(或上级作用域),两个方法作用一样都是将对象绑定到this,只是在传递参数上有所不同。

  • apply 用数组传参
  • call 需要分别传参
  • 与 bind 不同 call/apply 会立即执行函数
  • function show(title) {
        alert(`${title+this.name}`);
    }
    let lisi = {
        name: '李四'
    };
    let wangwu = {
        name: '王五'
    };
    show.call(lisi);
    show.apply(wangwu, ['HDCMS']);
    

    2、bind

    bind()是将函数绑定到某个对象,比如 a.bind(hd) 可以理解为将a函数绑定到hd对象上即 hd.a()。

  • 与 call/apply 不同bind不会立即执行
  • bind 是复制函数形为会返回新函数
  • let a = function() {};
    let b = a;
    console.log(a === b); //true
    //bind是新复制函数
    let c = a.bind();
    console.log(a == c); //false
    

    免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/45341.html

    (0)

    相关推荐

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注

    关注微信