【问题标题】:How to change the context of function using 'bind'? [duplicate]如何使用“绑定”更改函数的上下文? [复制]
【发布时间】:2016-12-02 20:00:39
【问题描述】:
function greet(){
   return 'Hi ' + this.name;
}
greet = greet.bind({name: 'Tom'});
greet(); // Hi Tom
greet = greet.bind({name: 'Harry'});
greet(); // Hi Tom (Why??)

'bind' 应该返回一个带有 'this' 新值的新函数。为什么这不起作用?

【问题讨论】:

  • 简短的回答是一个被绑定的函数,不能rebound

标签: javascript


【解决方案1】:

一旦函数绑定到自定义对象,就无法更改。这是您可以在原始功能未更改的情况下执行的操作:

function greet(){
  return 'Hi ' + this.name;
}
greet1 = greet.bind({name: 'Tom'});
greet1(); // Hi Tom
greet1 = greet.bind({name: 'Harry'});
greet1(); // Hi Harry

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-24
    • 2011-08-16
    • 1970-01-01
    • 2010-12-04
    • 2023-03-31
    • 1970-01-01
    • 2019-05-03
    • 1970-01-01
    相关资源
    最近更新 更多