在脚本加载时,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