我试图为Google Script编写Javascript函数,但我一直收到错误:
TypeError: Cannot call method "<method>" of undefined
当我在函数的参数上调用方法时。以下是代码:
function rolldice(dice) {
var d_ind = dice.indexOf('d');
var die_num = Number(dice.substr(d_ind,0));
var die = Number(dice.substr(d_ind + 1, dice.length()));
var value = 0;
for (var i = 0; i < die_num; i++) {
value += Math.floor((Math.random() * die) + 1);
};
return value;
};
它预计骰子在作为函数的参数时已被定义为字符串,但这对我来说并没有任何意义。
有人可以向我解释我做错了什么吗?或者,如果在使用谷歌的脚本编辑器时,这个错误往往会突然出现。
修改 有些人告诉我,问题可能是我在函数上调用的函数不是字符串,但是目前脚本只是我在代码块中所拥有的,并且它不会在任何地方调用此函数。
然而,当运行脚本时(除了定义一个函数并且从不使用它之外不应该做任何事情),我仍然会收到此错误
编辑2: 看起来在Google脚本编辑器中运行一个函数会使它有点不稳定,它会尝试运行函数行,就好像它们不在函数中一样,只是将参数视为未定义的变量。
但是,如果脚本在Google工作表中工作,它不会影响