下面js代码有些地方看不懂,求指教。

createBtn:function(p,v,fn){

var btn=document.createElement("input");

btn.type="button";

btn.className='btn';

btn.value=v;

btn.onmouseover=function(){this.className='btnfocus';}

btn.onmouseout=function(){this.className='btn';}

btn.onclick=function(){
Showbo.Msg.hide();

if(fn)fn(p);

}

return btn;

},

    if(fn)fn(p);  fn是个参数 ,p也是个参数。if这样写看不懂啊  求指教

4个回答

if(fn)fn(p);
改成这样好点,要不fn不是函数就报错了

if(typeof fn=='function')fn(p)

其实就是调用传入的函数,并将p作为此函数的参数传入

Showbo.Msg.hide();....我写的??O(∩_∩)O哈哈~。。。

为空啊,判断fn这个参数是否传入,有的话执行fn(p),没有的话就不执行,

javascript的函数式语言特性,函数可以当做参数使用。
这里的if是判断是否有定义fn这个函数,如果有就执行fn函数,fn函数的参数是p。
https://segmentfault.com/a/1190000000424756

if(fn){
fn(p);

}
//if语句后面只有一句时,{}可省略。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐