函数的重载
function
sum(num1,num2){
return
num1+
num2;
}
var
sum =
function
(num1,num2){
return
num1+
num2;
}
function
sum(num1){
return
num1 + 100
;
}
函数的对象,不存在重载,只是存在覆盖,后面定义会覆盖前面定义的
/*
此时sum所指向的空间已经从有两个参数的函数变化到只有num1的函数中
在调用的时候就只会调用只有num1的函数
特别指出:函数的参数和调用没有关系,如果函数只有一个参数,但是却传入
所以在js中函数不存在重载
*/
var
sum =
function
(num1){
return
num1 + 100
;
}
//
函数有如下一种定义方式
一定多思考相应的内存相模型
/*
如下定义方式等于定义了一个
function fn(num1,num2){
console.log(num1 + num2);
}
所以通过以下的例子,充分的说明函数就一个对象
*/
var
fn =
new
Function('num1','num2','console.log('fun:'+(num1+num2))'
);
fn(
12,22
);
console.log(
12,22
);
alert(sum(
19
));
alert(sum(
19,20));

