JavaScript中的函数 上篇

==========================function==========================
第一点:函数是对象,函数是对象,函数是对象。重要的话说三遍。
函数既然是对象,那么函数自然有引用啊,既然有引用,那肯定可以不止只有一个引用啊。
看一段代码:
var point1 = function() {
console.log("function test");
}
var point2 = point1;
var point3 = point2;
point1();
point2();
point3();


结果是:
function test
function test
function test


第二点:函数不存在重载,函数不存在重载,函数不存在重载。重要的话说三遍。
为什么不存在重载?因为函数名其实仅仅只是函数对象的引用而已。对象的引用。
可以不唯一。而且函数的参数对函数的区分不起作用,还有一点就是没有返回值。
类型一说。
看一个实例:
function func(x, y, z) {
console.log(x + y + z);
};


function func(x, y) {
console.log(x + y);
};


func(2, 3, 4);
结果是多少?
假如存在函数重载,那么等于9。
假如不存在函数重载,那么等于5。
实际等于5


第三点:函数声明几乎等价于函数表达式,但是函数声明不等于函数表达式。
解析器解析程序一般是按照顺序解析的,但是有一点需要说明,那就是
解析器对于函数声明会优先解析,也就是说会提升解析的优先级。
而对于函数表达式按照一般顺序进行解析。
这就回产生一个问题:通过变量访问函数的次序和函数定义的位置存在一个先后关系。
初次以外,没有任何区别。
func();
var func = function () {
console.log("use function");
}
结果显示:Uncaught TypeError: func is not a function
var func = function () {
console.log("use function");
}
func();
结果显示:use function

猜你喜欢

转载自blog.csdn.net/qq_23143555/article/details/80658899