我使用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