JavaScript中的匿名和内联函数有什么区别?

mat*_*i82 19 javascript anonymous inline function

标题总结了我的问题.一个证明这一点的例子很好.

Dan*_*nez 28

首先,JavaScript中的内联函数似乎没有一致的定义.我认为内联函数是JavaScript函数的特例.一个内联函数是分配给在运行时,而不是在分析时创建的变量的函数.

匿名函数和内联函数几乎相同,因为它们是在运行时创建的.不同之处在于内联函数已分配给变量,因此可以重复使用.这样,内联函数与常规函数的工作方式相同.

功能

function func() {
    alert ('function');
} 

$('a').click(func);
Run Code Online (Sandbox Code Playgroud)

内联函数

var func = function() { 
    alert ('inline') 
};

$('a').click(func);
Run Code Online (Sandbox Code Playgroud)

匿名函数

$('a').click(function() {
    alert('anonymous');
});
Run Code Online (Sandbox Code Playgroud)

与常规函数相比,匿名和内联函数可能会有性能损失.请参阅var functionName = function(){} vs function functionName(){}.


CSS*_*ent 5

内联函数有些不同,引用维基百科:

内联函数是已要求编译器执行内联扩展的函数。换句话说,程序员已要求编译器在调用函数的每个位置插入函数的完整主体,而不是生成代码以在定义的那个位置调用该函数。编译器没有义务遵守此请求。

Javascript不支持内联函数的概念。但是我在网络上找到了一些引用,例如:

(function(){
  setTimeout(/*inline function*/function(){ /*some code here*/ }, 5);})
();
Run Code Online (Sandbox Code Playgroud)

称为内联函数。如您所见,这些函数也没有任何名称,因此它们与匿名函数基本相同。我认为,由于您是在使用该函数的位置定义函数的,因此内联函数已引用了该函数,但是名称“ anonymous function”最能描述该概念。