javascript - 调用函数时,返回未定义

标签 javascript android

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

Save.prototype.clickedFileSave();

如果我从 Save var 执行它,它就可以工作,我需要从 URL 调用它。 我试过这个:

javascript:Save.prototype.clickedFileSave();

或者这个:

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

甚至是这样:

window[Save.prototype.clickedFileSave]);

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

TypeError: this.getGame(...) is undefined

如果您对如何解决这个问题有任何想法,我很想知道。 谢谢!

这是保存并放置变量(通过pastebin,它很大):

最佳答案

这是一个根本性的误解。

定义为 Save.prototype.clickedFileSave 的方法是类/对象 Save 的一部分,可以在 Save 的实例上调用>:

var game = new Game(...);
var save = new Save(game);
save.clickedFileSave();

除非将 Save 的实例传递给它,否则无法直接通过原型(prototype)调用它:

Save.prototype.clickedFileSave.apply(save);

您收到的错误意味着 .getGame(...) 也是 Save 的一种方法,定义为 Save.prototype.getGame,并在 clickedFileSave 中使用 this.getGame(...) 进行引用。换句话说,当调用此类方法时,this必须引用Save的实例。

关于javascript - 调用函数时,返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34965068/

相关文章:

android - 同一 Activity 上有多个按钮

javascript - 使用枚举定义另一个枚举

javascript - 更改月份后的 Jquery Datepicker 触发器(月份呈现后)

javascript - 旋转 div 但防止在窗口边界处溢出

javascript - 动态输入不起作用

android - 如何启动所有安卓厂商的电源管理器以启用后台和推送通知?

android - ListView edittext 数据在 Android 中滚动时丢失

javascript - 当我将数组索引存储为变量时,代码不起作用

android - setListAdapter的使用

android - 如何为textview android格式化字符串