zoukankan      html  css  js  c++  java
  • call-apply-bind区别

    首先他们都是改变函数执行的上下文,也就是改变函数运行时this的指向。接下来来看一个例子:

     1 let obj = {name:"HaHa"}
     2 function Son(name) {
     3   this.name = name;
     4 }
     5 
     6 Son.prototype = {
     7   constructor: Son,
     8   setName: function() {
     9     console.log(this.name);
    10   }
    11 }
    12 
    13 var son = new Son("jaja");
    14 son.setName() // jaja
    15 
    16 //
    17 son.setName.call(obj);
    18 son.setName.apply(obj);
    19 var ss = son.setName.bind(obj);
    20 ss();

    区别:

    apply,call 和bind的区别:bind是直接将函数的this指向为我们所想指向的对象,并准备好参数,返回一个函数,等到需要运行的时候在执行;而apply和call是直接运行该函数。

    apply和call的区别:他们的区别就是参数的区别,他们第一个参数都是改变上下文的对象,而call的第二个参数是一个除上下文参数的参数列表。apply的第二个参数是一个包裹除上下文参数的所有参数的数组

  • 相关阅读:
    CF258D
    CF662C
    CF1295F
    CF1406E
    CF1270F
    CF1278F
    CF1523E
    CF1554E
    算法第四章上机实践报告
    LCA RMQ+ST表学习笔记
  • 原文地址:https://www.cnblogs.com/chenxi0x0/p/12218541.html
Copyright © 2011-2022 走看看