函数表达式中的Javascript if else语句

时间:2016-06-10 09:17:43

标签: javascript

我目前正在学习Javascript。我试着下载示例代码,其中会有图像转换。有些功能有我无法完全理解的代码。

第一个功能是:

function addElementEvent(o,e,f){
    var of = o[e];
    var f2 = function(){of();f();}
    o[e] = !is_function(of) ? f : f2;
}

我想知道f()的值是多少。好的,请你帮帮我

,第二个功能是:

var _loadImage = [];
function loadImage(s,f,always_show_loading){
    var i_onload = function(){_loadImage[s]=true;if(f)f(s);}
    var l = function(){if(_loadImage[s]){if(f)f(s);}else{var i=newElement('IMG');i.onload=i_onload;new function(){i.src=s;};}}
    if(always_show_loading) setTimeout(l, typeof(always_show_loading) == 'number' ? always_show_loading : 1000);
    else l();
}

然后这是我在第二个函数中无法完全理解的LOC。

var i_onload = function(){_ loadImage [s] = true; if(f)f(s);}

该行是否为if,else语句的快捷方式?

请您解释一下这段代码的含义?

谢谢!

1 个答案:

答案 0 :(得分:0)

  

我想知道f()的值是多少。

调用f的返回值取决于f的内容。

f是函数的第三个参数。

由于您还没有告诉我们如何调用该函数,我们无法告诉您f的作用。

  

该行是否为if,else语句的快捷方式?

没有。它是一个包含if语句的函数表达式。根本没有别的东西。

var i_onload = function(){
    _loadImage[s] = true;
    if(f) { 
      f(s);
    }
};