js 函数创建的三种方法及其区别

1.函数声明

function fa1 (n1, n2){
	return n1 + n2
};

2.函数表达式法,又叫 函数字面量法

var fa2 = function(n1,n2){
	return n1 + n2;
};

var fa3 = (function(a1, a2){
	return a1 + a2
})(22, 33);
console.log(fa3) =====>> 55

以上两者的区别: 解析器会优先读取函数声明,并使其在执行任何代码前都可以访问; 函数表达式则必须在解析器执行到他所在的代码行的时候才会被正确解释执行。

3.函数构造法,又叫关 键字法(new)

var fa4 = new Function('n1', 'n2', 'retuen n1 + n2');

console.log(fa4(11, 55))   ====>> 66
var date = new Date();

注意:关键字法 参数必须用引号括起来

**同以上两种方法的区别 ** Function() 构造函数方法 执行的时候会解析两次,先解析主体函数一次,并创建一个新的函数对象,再解析新的函数,获取正确解析执行的结果。所以当在一个循环或频繁执行的函数中调用Function()构造函数效率是非常低的。而函数字面量却不是每次遇到都会重新编译的,用Function()构造函数创建一个函数时并不遵循典型的作用域,它一直把它当作是顶级函数来执行。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值