• JavaScript No Overloading 函数无重载之说


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

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

  • 相关阅读:
    [转]ARM平台下独占访问指令LDREX和STREX
    ARM MMU
    在字符串中查找子字符串并提取它
    获得字符串的长度
    连接字符串
    循环用于迭代数组中的项目
    循环的标准
    if ... else 语句
    添加一个图像切换器
    css 中的z-index
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/6749266.html
Copyright © 2020-2023  润新知