相关疑难解决方法(0)

使用命名的立即调用函数表达式(IIFE)而不是注释

在JS代码中使用命名IIFE来描述和分组相关代码的利弊是什么?

我一直在使用这个"模式"来为我的更多程序代码提供结构,这些代码只能在一个地方执行.


(function hideStuffOnInstantiaton(){
    $('oneThing').hide().removeClass();
    $('#somethign_else').slideUp();
    $('.foo').fadeOut();
}());
Run Code Online (Sandbox Code Playgroud)

我觉得这比两者都好:

// hide Stuff on Instantiaton
$('oneThing').hide().removeClass();
$('#somethign_else').slideUp();
$('.foo').fadeOut();
Run Code Online (Sandbox Code Playgroud)

因为随着时间的推移,评论可能会与代码分开,而且评论所适用的行不是很明显

并:

function hideStuffOnInstantiaton(){
    $('oneThing').hide().removeClass();
    $('#somethign_else').slideUp();
    $('.foo').fadeOut();
};

hideStuffOnInstantiaton();
Run Code Online (Sandbox Code Playgroud)

因为如果它只在一个地方执行,为什么要分开函数及其执行?


使用此模式时是否存在任何性能,可维护性,可测试性或跨浏览器注意事项?我不相信我已经看到很多人在野外使用它但我觉得它可能非常有用

javascript maintainability comments iife

11
推荐指数
2
解决办法
3715
查看次数

如何在JavaScript中命名匿名函数有所不同?

我正在分析来自John Resig网站的以下两个网址,但我不明白为匿名功能命名是如何产生影响的.

我的理解是,匿名函数的名称只能在函数定义中使用,并且不在其中,但在以下链接中它会产生巨大的差异

任何解释或参考都将是一个很大的帮助.

我仍然对#14中的以下几行感到困惑

var samurai = { yell: ninja.yell }; 
var ninja = {};
assert( samurai.yell(4) == "hiyaaaa", "The method correctly calls itself." ); 
Run Code Online (Sandbox Code Playgroud)

当忍者现在指向一个空白对象时,Samurai.yell方法如何能够指向ninja.yell.

只有#13和#14之间的区别是为#14中的函数表达式提供名称.

是ninja.yell COPIED大喊并没有引用或这些NAMED函数表达式在某些情况下具有全局范围?

同样的事情发生在#13和#14中,唯一的区别是函数在#14中命名,#13中的未命名加上#14中的ninja = {}和#13中的ninja = null.有没有关于NAMED FUNCTION EXPRESSIONS的隐藏概念,我错过了#14使得#14可行,#13不可行.

javascript

10
推荐指数
2
解决办法
341
查看次数

具有名称的IIFE的实际用途是什么?

我熟悉IIFE执行函数的方法:

(function(){
    //stuff
}());
//immediately invoked, parsed as an expression
Run Code Online (Sandbox Code Playgroud)

这种方式我只需通过声明它就像任何其他对象一样为函数赋值:

var theFunction = function(){
    //stuff
}
//can be executed with theFunction();
Run Code Online (Sandbox Code Playgroud)

但今天我看到这两个组合如下:

var theFunction = (function(){ 
    //stuff
}());
Run Code Online (Sandbox Code Playgroud)

这是做什么的,或者它可以提供什么样的优势?

javascript

1
推荐指数
2
解决办法
389
查看次数

标签 统计

javascript ×3

comments ×1

iife ×1

maintainability ×1