Javascript 在另一个JS文件中调用全局函数。我如何获得';这';工作?

Javascript 在另一个JS文件中调用全局函数。我如何获得';这';工作?,javascript,this,global,Javascript,This,Global,我有2个js文件: file1.js包含一个原型,其中包含: printname: function() { console.log('my name is A'); } getname: function() { console.log('getting name..'); this.printname(); } 然后我将“getname”函数放在一个全局变量中,因为我想在任何地方访问它: globalvar.myfunction = this.getname; f

我有2个js文件:

file1.js包含一个原型,其中包含:

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

getname: function() {
    console.log('getting name..');
    this.printname();
}
然后我将“getname”函数放在一个全局变量中,因为我想在任何地方访问它:

globalvar.myfunction = this.getname;
file2.js包含原型B,其中包含:

runmyglobalfunction: function() {
   globalvar.myfunction();
}
当我调用this.runmyglobalfunction时,结果是:

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

但我看不到“我的名字是A”

如何修复此问题?

您可以将函数的
值转换为特定值:

globalvar.myfunction = this.getname.bind(this);
现在,无论如何调用
globalvar.myfunction
,函数中的
this
将始终引用该行中所引用的内容

相关的: