Js函数的三种定义⽅式
函数的定义⽅式
函数声明:必须有名字,会函数提升,在预解析阶段就已经创建,声明前后都可以调⽤
//函数声明
//定义函数名
function fn(){
console.log(123);
}
函数表达式:⼀种变量赋值,函表达式可以没有名字(匿名函数),没有函数提升。
//将函数赋值给⼀个变量,可以是匿名函数
var fn = function(){
console.log(123);
};
由于函数声明提升,函数声明定义的函数,其函数名可以在函数声明之前调⽤,⽽函数表达式定义的函数不能,它进⾏的是⼀个变量赋值,本质会进⾏变量声明提升,如果写在前⾯的话,只是定义了⼀个变量,⽽没有赋值,其内部是undefined,⽆法执⾏函数,就会报错。
new Function
函数本⾝也是⼀种对象,可以调⽤属性和⽅法
//函数声明⽅式
//有参数
function fun(a,b){
var a = 1;
console.log(a+b);
}
js方法function(2,3);
//通过构造函数⽅法定义函数
var fn = new Function('var a = "1";console.log(a)');
fn();
//添加参数
var fn2 = new Function('a','b','var a = "1";console.log(a+b)');
fn2(2,4);
这种⽅式其实相当于new Function的括号⾥穿的是⼀堆字符串,解析慢,效率低,易出错。
console.dir(fn2);//new Function()是函数也是⼀种对象,有⾃⼰的属性和⽅法
new Function()是函数也是⼀种对象,有⾃⼰的属性和⽅法

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。