2016-06-10 23 views
0

我正在学习Javascript。我试图下载一个示例代码,其中会出现图片的转换。一些功能有我不能完全理解的代码。函数表达式中的Javascript if else语句

的第一个功能是:

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我不能完全在第二个功能理解。

变种i_onload =函数(){_的LoadImage [秒] = TRUE;如果(F)F(S);}

是该行用于如果,否则语句的快捷方式?

请您解释一下这段代码的意思吗?

谢谢!

+0

'变种i_onload =函数(){_的LoadImage [秒] = TRUE;如果(F)F(S);}' 可以是写: 'VAR i_onload =函数(){ _loadImages [秒] = true;如果(f){f(s); } }' –

+0

*函数调用的值f()* ... hm的值可以看作是函数返回的值。所以,如果你有一个像'function f(){return 2;}'这样的函数,'f()'的值就是'2' – devnull69

+0

这段代码看起来像是已经通过最小化器运行了。如果您正在学习,您应该尝试找到未分类的代码。当所有变量被重命名为单个字符时,很难确定代码的作用。 – jasonscript

回答

0

我想知道什么是f()的价值。

致电f的返回值取决于f是什么。

f是函数的第三个参数。

由于您没有向我们展示函数的调用方式,因此我们不能告诉您什么是f

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

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

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

我实际上已经在此链接http://www.devtrix.net/sliderman/download.html中获得了代码,其文件名为demo2。 我希望你不介意,但可能请你检查代码,因为我想告诉你如何调用函数,但不知道如何。谢谢! – user010594