我正在寻找以下情况的解决方法:
obj1 = {
number : 1,
mynumber : function(){
console.log(this.number);
}
}
foo = obj1.mynumber
foo(); //undefined
简化,我怎样才能使 foo()
打印 number
?
最佳答案
通过bind
的魔法!
bind
允许您创建函数的副本,并将 this
值(以及任意数量的参数)显式设置为您想要的值。
obj1 = {
number : 1,
mynumber : function(){
console.log(this.number);
}
}
foo = obj1.mynumber.bind(obj1); // <--
foo(); // 1
关于javascript - 我怎样才能让引用的函数保持其父作用域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43902572/