函数有两种定义方式:
1、函数声明
function test() {
var a = 1;
return a;
};
console.log(test); //打印出函数体
console.log(test()); //如无return打印undefined, 此处1
从打印结果可以看出:
- 函数名test为一个指向该对象的指针,因此console.log(test)是打印test指向的函数体
- test()为调用test函数,执行后返回a,因此打印1
2、函数表达式
var test1 = function () {
var b = 2;
return b;
};
console.log(test1); //打印出函数体
console.log(test1()); //如无return打印undefined, 此处2
从打印结果可以看出:
- 变量test1初始化为一个匿名函数,通过test1即可引用该函数,将因此console.log(test1)是打印test1指向的函数体
- test1()为调用test函数,执行后返回a,因此打印2
综上,两种方式其实大体上可总结为:
函数声明的函数名和函数表达式的变量都可看成是一个指向函数的指针。
另:函数实际上是对象,每个函数都是Function类型的实例,具有属性和方法。
本人为小白,文章目的为学习总结,如有错误,请指正!