javascript - 我怎样才能让引用的函数保持其父作用域?

标签 javascript

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

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/

相关文章:

javascript - 删除表单元素并在其位置放置一个具有唯一 id 的 div?

javascript - 点和线之间的最短距离(Google Maps API 问题?)

javascript - 印度格式的 Angular 货币过滤器

javascript - 获取 Jinja2 for 循环中每个项目的 API 调用

javascript - 如何重定向到 ngOnit 上的路由?

javascript - Sweet Alert确认对话框在响应之前消失?

javascript - Jasny 多文件上传与其他表单元素

javascript - 每次有人选择文件时自动提交表单

javascript - 在 Angular 中动态创建元素

javascript - React js中输入按钮的onClick事件