首页 > 编程语言 > 详细

JavaScript No Overloading 函数无重载之说

时间:2015-06-28 23:06:47      阅读:424      评论:0      收藏:0      [点我收藏+]

      在ECMAScript语言中,函数名字只不过是一个指针(可以认为是引用),下面的代码:

"use strict";

function sum(a,b){
    return a+b;
}

console.log(sum(1,2));

var sum2 = sum;
sum = null;

console.log(sum2(3,3));

      输出:3,6;

     

       代码可以看出,我们定义了函数,其实函数名是一个指针,指针指向了堆内存那块这个函数的定义,我们可以把这个地址保存好几份。


       我们看一下“重载”(加引号强调不是真的):

"use strict";

function addSomeNumber(num){
    return num + 100;
}

function addSomeNumber(num,add){
    return num + add;
}

console.log(addSomeNumber(10));

        结果是什么:NaN


      上面的代码可以等价于下面的书写:


 

"use strict";

var addSomeNumber = function(num){
    return num + 100;
};

addSomeNumber=function(num,add){
    return num + add;
};

console.log(addSomeNumber(10));

    由这个等价的代码,我们可以轻易的看出,当我们定义同名函数时候,相当于函数指针指向了其它代码定义。

JavaScript No Overloading 函数无重载之说

原文:http://blog.csdn.net/doctor_who2004/article/details/46674285

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!