【问题标题】:Understanding the bind method. Reference vs value了解绑定方法。参考与价值
【发布时间】:2022-06-21 01:08:56
【问题描述】:

我不知道这是不是一个愚蠢的问题,但无论如何我都会问它。

我在 javascript 课程中看到,我们可以在函数上使用 bind 方法来创建基本相同但更具体的函数。比如像这样:

const addTax = (rate, value) => value + value * rate;

                           null because we don't need this 
const addVAT = addTax.bind(null, 0.23); 

所以基本上我们在这里所做的是基于 addTax 函数创建一个名为 addVAT 的新函数,但不同之处在于我们将费率硬编码为 0.23。

现在我的问题是:既然函数是对象并且对象是通过引用传递的,那么 addTax 函数现在不应该变成 addVAT 函数 因为它们都指向同一个引用,就像这里一样?:

const person = {
  name: 'test',
};
const person1 = person;
person1.age = 20;

因为当我们将 person1 初始化为 person 并且将属性 age 添加到 person1 时,它也会添加到 person

【问题讨论】:

    标签: javascript function reference bind


    【解决方案1】:

    没有。


    首先你创建一个函数并将它分配给addTax

    const addTax = (rate, value) => value + value * rate;
    

    然后调用该函数的bind 方法并将其返回值分配给addVAT

    const addVAT = addTax.bind(null, 0.23); 
    

    bind 方法的目的是创建一个新函数并返回它。

    它不只是返回原始函数(这将毫无意义)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-22
      • 1970-01-01
      • 2021-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多