在另一个JS文件中调用全局函数。我如何获得“这个”的作用?

时间:2019-02-03 18:38:14

标签: javascript this global

我有2个js文件:

file1.js包含具有以下内容的原型A:

: Packet

然后我将'getname'函数放在全局变量中,因为我想在任何地方访问它:

printname: function() {
   console.log('my name is A');
}

getname: function() {
    console.log('getting name..');
    this.printname();
}

file2.js包含具有以下内容的原型B:

globalvar.myfunction = this.getname;

当我调用this.runmyglobalfunction时,结果是:

我可以看到控制台日志“获取名称..”。

但是我看不到'我的名字是A'

我该如何解决?

1 个答案:

答案 0 :(得分:1)

您可以将函数的this.bind设置为特定值:

globalvar.myfunction = this.getname.bind(this);

现在,无论如何调用globalvar.myfunction,函数内的this总是引用该行中引用的this

相关:How to access the correct `this` inside a callback?