JS中创建函数的几种方法

本文介绍了JavaScript中创建函数的六种常见方法,包括声明函数、匿名函数表达式、具名函数表达式、自执行函数、使用Function构造函数以及其他非常规方法,并详细解释了每种方法的特点与应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JS中创建函数的几种方法

本文参考博客–大部分人都会做错的经典JS闭包面试题
1. 声明函数

function fn1(){}

最普通最标准的声明函数方法,包括函数名及函数体。
2. 创建匿名函数表达式

var fn1 = funciton (){}

创建一个变量,这个变量的内容为一个函数
3. 创建具名函数表达式

var fn1 = funciton func_name(){}

具名函数表达式的函数名只能在创建函数内部使用,即采用此种方法创建的函数在函数外层只能使用fn1不能使用func_name的函数名。func_name的命名只能在创建的函数的内部使用

var fn1=function xxcanghai(){
    console.log("in:fn1<",typeof fn1,">xxcanghai:<",typeof xxcanghai,">"); 
      }; 
 console.log("out:fn1<",typeof fn1,">xxcanghai:<",typeof xxcanghai,">");
 fn1();
//out:fn1< function >xxcanghai:< undefined >
//in:fn1< function >xxcanghai:< function >
  • 可以看到在函数外部(out)无法使用xxcanghai的函数名,为undefined。
  • 注意:在对象内定义函数如var o={ fn : function (){…} },也属于函数表达式
    • 区别:使用var或是非对象内部的函数表达式内,可以访问到存放当前函数的变量;在对象内部的不能访问到。
var o={
  fn:function (){
    console.log(fn);
  }
};
o.fn(); //ERROR报错

var fn=function (){
  console.log(fn);
};
fn(); //function (){console.log(fn);};正确

原因也非常简单,因为函数作用域链的问题,采用var的是在外部创建了一个fn变量,函数内部当然可以在内部寻找不到fn后向上册作用域查找fn,而在创建对象内部时,因为没有在函数作用域内创建fn,所以无法访问。
4. 自执行函数

(function(){alert(1);})();
(function fn1(){alert(1);})();

自执行函数属于上述的“函数表达式”,规则相同
5. Function构造函数
可以给 Function 构造函数传一个函数字符串,返回包含这个字符串命令的函数,此种方法创建的是匿名函数。
6. 其他创建函数的方法
当然还有其他创建函数或执行函数的方法,这里不再多说,比如采用 eval , setTimeout , setInterval 等非常用方法,这里不做过多介绍,属于非标准方法,这里不做过多展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值