我正在寻找以下情况的解决方法:
obj1 = {
number : 1,
mynumber : function(){
console.log(this.number);
}
}
foo = obj1.mynumber
foo(); //undefined
简化,如何foo()
打印number
?
答案 0 :(得分:4)
通过bind
的魔力!
bind
允许您创建一个函数的副本,其中this
值(以及任意数量的参数)明确设置为您想要的任何值。
obj1 = {
number : 1,
mynumber : function(){
console.log(this.number);
}
}
foo = obj1.mynumber.bind(obj1); // <--
foo(); // 1