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

    call、apply、bind三者为改变this指向的方法。

    共同点:第一个参数都为改变this的指针。若第一参数为null/undefined,this默认指向window

    call(无数个参数)

    • 第一个参数:改变this指向
    • 第二个参数:实参
    • 使用之后会自动执行该函数
    function fn(a, b, c) {
      console.log(this, a + b + c); // this指向window
    }
    fn();
    fn.call(document, 1, 2, 3); //call改变之后this指向document
    //输出 #document 6   1,2,3是实参 结果相加为6

    apply(两个参数)

    • 第一个参数:改变this指向
    • 第二个参数:数组(里面为实参)
    • 使用时候会自动执行函数
    function fn(a, b, c) {
      console.log(this, a + b + c);
    }
    fn();
    fn.apply(document, [1, 2, 3]);

    bind(无数个参数)

    • 第一个参数:改变this指向
    • 第二个参数之后:实参
    • 返回值为一个新的函数
    • 使用的时候需要手动调用下返回 的新函数(不会自动执行)
    function fn(a, b, c) {
      console.log(this, a + b + c); //window
    }
    let ff = fn.bind("小明", 1, 2, 3); //手动调用一下

    call、apply与bind区别:前两个可以自动执行,bind不会自动执行,需要手动调用

    call、bind与apply区别:前两个都有无数个参数,apply只有两个参数,而且第二个参数为数组

  • 相关阅读:
    C# Winform中WndProc 函数作用
    C#程序集编译输出XML文档的作用
    C#属性访问器
    C#索引器
    static修饰符
    abstract 与 interface
    使用 Override 和 New 关键字进行版本控制
    scrapy爬虫初体验
    正则表达式
    MySQL常用指令
  • 原文地址:https://www.cnblogs.com/crazycode2/p/13468127.html
Copyright © 2011-2022 走看看