首先介绍下匿名函数
创建一个变量,这个变量的内容为一个函数var fn1=function (){}
注意采用这种方法创建的函数为匿名函数,即没有函数name
var fn1=function (){}; getFunctionName(fn1).length;//0 //见下面获取匿名函数的函数名
那么,如何判断函数是否是匿名函数呢?
也可以通过判断来区分匿名函数和具名函数(命名函数)通过输出 fn.name 来判断,有name的就是具名函数,没有name的就是匿名函数
低版本IE上无法获取具名函数的name,会返回undefined,因此需要兼容IE
function getFunctionName(fun){ console.log("qwww"); if(fun.name!==undefined){ console.log(fun.name); return fun.name; //IE的话会返回undefined } //处理IE不能获得具名函数的问题 var ret = fun.toString(); ret = ret.subString("function ".length); ret = ret.subString(0,ret.indexOf('(')); console.log(ret); return ret; } //具名函数 getFunctionName(function f1(){ }); //匿名函数 getFunctionName(function (){ });
下面具体介绍各种函数创建
声明函数
最普通最标准的声明函数方法,包括函数名及函数体。
function fn1(){}
创建匿名函数表达式
创建一个变量,这个变量的内容为一个函数
var fn1=function (){}
注意采用这种方法创建的函数为匿名函数,即没有函数name
var fn1=function (){}; getFunctionName(fn1).length;//0
创建具名函数表达式
创建一个变量,内容为一个带有名称的函数
var fn1=function xxcanghai(){};
注意:具名函数表达式的函数名只能在创建函数内部使用
即采用此种方法创建的函数在函数外层只能使用fn1不能使用xxcanghai的函数名。xxcanghai的命名只能在创建的函数内部使用
自执行函数
(function(){alert(1);})(); (function fn1(){alert(1);})();
自执行函数属于上述的“函数表达式”,规则相同
js函数创建 匿名函数
最新推荐文章于 2022-03-14 08:16:53 发布