调用函数时,它返回undefined

时间:2016-01-23 15:09:42

标签: javascript android

我正在制作CandyBox2的Android版本(我知道有些已经存在,但我真的想做一个更好的)。 要另存为文本,您需要调用此函数:

Save.prototype.clickedFileSave();

如果我从Save var中执行它,它需要从URL调用它。 我试过这个:

javascript:Save.prototype.clickedFileSave();

或者这个:

javascript:Save.prototype.clickedFileSave.call();

甚至这个:

window[Save.prototype.clickedFileSave]);

最后一个根本不起作用,因为它是一个函数,而不是一个方法,但其他两个返回:

  

TypeError:this.getGame(...)未定义

如果您对如何解决这个问题有任何想法,我很乐意了解它。 谢谢!

这是Save and Place var(通过pastebin,它很大):

1 个答案:

答案 0 :(得分:0)

存在一个根本性的误解。

定义为Save的方法是类/对象Save的一部分,可以在var game = new Game(...); var save = new Save(game); save.clickedFileSave(); 的实例上调用:

Save

除非您传递Save.prototype.clickedFileSave.apply(save);

的实例,否则无法直接通过原型调用它
.getGame(...)

您获得的错误意味着Save.prototype.getGame 也是保存方​​法,定义为clickedFileSave,并在this.getGame(...)内引用this }。换句话说,在调用此类方法时,Save 必须引用{{1}}的实例。