我使用JavaScript来调用已投入的对象,像这样的功能:后来JavaScript错误:*是不是一个函数
generatewidgets['mywidget'] = function (mystring) { code }
,我遍历这个对象,然后调用了每个函数字符串参数。
argument = 'abcdefg';
for (this.key in generatewidgets)
generatewidgets[this.key](argument);
这工作正常在IE8,但在Firefox中抛出一个错误“参数不是一个函数”。它使用我为字符串指定的任何变量名进行此操作。我也试过:
generatewidgets[this.key](argument+'');
这导致“'abcdefg'不是函数”。任何人都知道这个错误意味着什么或为什么我得到它?
这被证明是正确的解决方案,虽然原因是不能从后上方清楚,所以我会指定更多。我正在创建generatewidgets = new Array();而不是generatewidgets = {};数组类创建一个对象,其中有一些非函数属性也出现在循环中。对我来说正确的解决方案是正确地实例化对象,虽然这个解决方案在更一般的情况下可能更好。 – Travis 2009-10-08 16:19:35