【问题标题】:bind() for binding to objectbind() 用于绑定到对象
【发布时间】:2017-06-23 21:01:54
【问题描述】:

我将函数foo 绑定到对象myObject。我期待调用foo 在我绑定到日志global 到控制台之前,并在绑定到日志myObject 到控制台之后。

var name = 'global';

function foo() {
  console.log(this.name);
}

var myObject = {
  name: 'myObject'
};

foo();
foo.bind(myObject);
foo();

但在这两种情况下,输出都是全局消息。

【问题讨论】:

  • @le_m 就是这样!谢谢!
  • @MikeMcCaughan 我不认为这是重复的。我知道该方法的作用,只是执行错误。
  • 但是这个问题的答案肯定会回答这个问题吗?
  • @MikeMcCaughan 不是真的,我看过这个问题 MDN 和各种博客,但没有看到我做错了什么。我需要的是有人说“你做错了。”

标签: javascript executioncontext


【解决方案1】:

foo.bind() 返回一个具有绑定的新函数,它不会修改原始函数。

var name = 'global';

function foo() {
  console.log(this.name);
}

var myObject = {
  name: 'myObject'
};

foo();
bar = foo.bind(myObject);
bar();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    • 2016-11-09
    • 2013-01-26
    • 2013-02-03
    相关资源
    最近更新 更多