javascript - 将函数上下文应用于javascript变量?

标签 javascript

如何将函数的上下文应用于任何 javascript 对象?所以我可以更改“this”在函数中的含义。

例如:

var foo = {
    a: function() {
           alert(this.a);
      },
    b: function() {
           this.b +=1;
           alert (this.b);
      }

var moo = new Something(); // some object 
var moo.func.foo = foo; // right now this is moo.func
// how do I apply/change the context of the foo functions to moo?
// so this should equal moo
moo.a(); // this should work

最佳答案

你可以在 moo 上设置函数:

var moo = new Something();
moo.a = foo.a;
moo.a();

...但是如果你想让它被 Something 的所有实例继承,你需要在 Something.prototype 上设置它:

var moo;
Something.prototype = foo;
moo = new Something();
moo.a();

foo.afoo.b 的定义有一些问题,因为它们都是自引用 this.b +=1 尤其会引起问题,因此您可能希望将函数更改为 this._b +=alert(this._b) 之类的函数,或使用不同的名称功能。

关于javascript - 将函数上下文应用于javascript变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12443601/

相关文章:

javascript - 创建 JS 对象的最优化方式

javascript - 需要跟踪用 CSS 突出显示的 'selected' div

javascript - 如何在 Protractor 自动化中使用 Javascript 命名空间?

javascript - 如何向此 javascript 函数添加转换

javascript - 在 Chrome 扩展 list 中指定自定义 key ?

javascript - 如何使自定义装饰器对 vue.js 2 应用程序全局可用?

javascript - 无法使用 JS 打印 PHP 变量

javascript - 如何实现我在 php 中使用的 simplepagination 插件?

javascript - 修改 MarkerClusterer 图标以获得最高分,而不是标记计数

javascript - 未在 process.env 中定义的 Firebase secret