在腳本加載時,Chrome應搜索全部全部函數聲明以聲明的順序優化/預編譯代碼內部。
如果您在運行時聲明函數,則使用=函數,只有在執行該行時才執行聲明。
因此,在你的情況下,在運行時定義函數saveImage = function(){...}。
$(document).ready(function(){
if ($('#catalog-image-form').size()) {
saveImage = function() {
$("#input1").val("some logic 1");
}
function globalfunction() {
$("#input1").val("some logic 1");
}
}
if ($('#param-form').size()) {
saveImage = function() {
$("#input1").val("some logic 2");
}
function globalfunction() {
$("#input2").val("some logic 2");
}
}
if (false) {
saveImage = function() {
$("#input1").val("some logic 3");
}
function globalfunction() {
$("#input2").val("some logic 3");
}
}
saveImage();
globalfunction();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<form id="catalog-image-form">
<input type="text" name="input1" id="input1"/>
<input type="text" name="input2" id="input2"/>
</form>
「的.size()方法被棄用的jQuery 1.8。使用。長度屬性。」 http://api.jquery.com/size/ – 2014-09-11 11:09:46
結果相同 – user3500854 2014-09-11 11:18:55
顯示HTML代碼。 - > http://jsfiddle.net/ plz – 2014-09-11 11:23:34