Javascript 在另一个JS文件中调用全局函数。我如何获得';这';工作?
我有2个js文件: file1.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
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
将始终引用该行中所引用的内容
相关的: