如何让引用函数保持其父作用域?

时间:2017-05-10 20:54:47

标签: javascript

我正在寻找以下情况的解决方法:

obj1 = {
 number : 1,
 mynumber : function(){
   console.log(this.number);
 }
}

foo = obj1.mynumber

foo(); //undefined

简化,如何foo()打印number

1 个答案:

答案 0 :(得分:4)

通过bind的魔力!

bind允许您创建一个函数的副本,其中this值(以及任意数量的参数)明确设置为您想要的任何值。

obj1 = {
 number : 1,
 mynumber : function(){
   console.log(this.number);
 }
}

foo = obj1.mynumber.bind(obj1); // <--

foo(); // 1