Я вызываю функцию JavaScript. Почему я иногда получить ошибку 'myFunction не определен', когда is определено?Почему моя функция JavaScript иногда «не определена»?
Например. Я иногда получаю «copyArray не определен», даже в этом примере:
function copyArray(pa) {
var la = [];
for (var i=0; i < pa.length; i++)
la.push(pa[i]);
return la;
}
Function.prototype.bind = function(po) {
var __method = this;
var __args = [];
// Sometimes errors -- in practice I inline the function as a workaround.
__args = copyArray(arguments);
return function() {
/* bind logic omitted for brevity */
}
}
Как вы можете видеть, copyArray определяется прямо, так что это не может быть о том порядке, в котором файлы сценариев нагрузки ,
Я получаю это в ситуациях, которые труднее работать, когда вызывающая функция находится в другом файле, который должен быть загружен после вызываемой функции. должен быть загружен. Но это был самый простой случай, который я мог представить, и, похоже, та же проблема.
Это не происходит в течение 100% времени, поэтому я подозреваю, что проблема связана с нагрузкой. Но я понятия не имею, что.
@Hojou: Это часть проблемы. Функция, в которой я сейчас получаю эту ошибку, сама является моей addLoadEvent, которая в основном является стандартной версией общей библиотечной функции.
@James: Я так понимаю, и в функции нет синтаксической ошибки. В этом случае также сообщается о синтаксической ошибке. В этом случае я получаю только «неопределенную» ошибку.
@David: Сценарий в этом случае находится во внешнем файле, на который ссылается используя обычный < сценария SRC = «file.js» > </скрипт > метода в головной секции страницы.
@Douglas: Интересная идея, но если это так, то как мы можем когда-либо с уверенностью назвать пользовательскую функцию? В любом случае, я пробовал это, и это не сработало.
@sk: Этот метод был протестирован в разных браузерах и в основном скопирован из библиотеки Prototype.
Просто из любопытства ... Есть страницы, где вы сталкиваетесь эту ошибку при выполнении скрипта и из кадров/IFRAME/всплывающих окон? – Shog9 2008-09-30 17:11:13
Ummm ... нет iframes или всплывающих окон. – harpo 2008-09-30 18:49:59