码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript No Overloading 函数无重载之说

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

标签:javascript no overlo   javascript 函数无重载之说   

      在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 函数无重载之说

标签:javascript no overlo   javascript 函数无重载之说   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!