如果我跑定義之前,下面的功能,我會得到這個錯誤...在調用它之前是否需要定義一個Javascript函數?
Uncaught ReferenceError: openModal is not defined
運行,然後定義
$(document).ready(function() {
delay(openModal, 2000);
delay = function (f, t) {
setTimeout(function() {
f();
}, t);
};
openModal = function() {
$('#modal-box').css({
left: $(window).width()/2 - $('#modal-box').width()/2,
top: $(window).height()/2 - $('#modal-box').height()/2
});
$('#modal-box').show();
$('#modal-mask').show();
};
});
現在,如果我先定義函數,然後調用它,它的工作原理...我在PHP中有一個背景,所以我習慣於能夠全局訪問函數,我是否做錯了什麼,或者在使用之前必須定義所有函數?
$(document).ready(function() {
delay = function (f, t) {
setTimeout(function() {
f();
}, t);
};
openModal = function() {
$('#modal-box').css({
left: $(window).width()/2 - $('#modal-box').width()/2,
top: $(window).height()/2 - $('#modal-box').height()/2
});
$('#modal-box').show();
$('#modal-mask').show();
};
delay(openModal, 2000);
});
是一切,即你聲明的標識符'openModal'(而不是限定它)上面範圍?例如'var openModal;' – Rup 2012-04-02 08:59:04
相關:http://stackoverflow.com/questions/261599/why-can-i-use-a-function-before-its-defined-in-javascript – TJHeuvel 2012-04-02 08:59:12
@Rup這是第一次openModal被使用 – JasonDavis 2012-04-02 08:59:55