函数的重载

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));

 

posted on 2014-12-12 16:22  hsle  阅读(180)  评论(0编辑  收藏  举报