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的第二个参数是一个包裹除上下文参数的所有参数的数组

  • 相关阅读:
    python值解析excel
    python 面向对象
    python之解析json
    python之数据驱动ddt
    Matlab笔记
    WPF应用Access数据库
    白平衡之灰度世界法与镜面法
    应用按位与操作,拆分字节
    WPF(C#)与MATLAB混合编程
    C++调用matlab函数
  • 原文地址:https://www.cnblogs.com/chenxi0x0/p/12218541.html
Copyright © 2011-2022 走看看