Javascript 没有重载的理解

在 Javascript 中,是没有重载的概念的。我们可以通过将函数名想像为指针的方法对其加以深入的理解(很好理解)。

下面的一个例子可以让大家很容易的明白 Javascript 中无重载的概念。

function addNum(s1){
return 100+s1;
}

function addNum(s2){
return 200+s2;
}

alert(addNum(1)); // 输出 201,实际上第二个函数覆盖了第一个函数。


看下面的变量声明函数法对上述概念的理解:

var addNum = function(s1){
return 100+s1;
};

addNum = function(s1){
return 200+s1;
};

alert(addNum(1)); // 输出 201,更容易看出第二个函数覆盖了第一个函数。


对于变量的声明,实际上此处的 addNum 是对 Function 对象的一个引用,可以想象成指针,变量声明了两次,实际上第二次的声明切断了函数第一次的引用而指向了另外一个对象。

在这里,我们可以把每个函数都看做是 Function 类型的实例。由于这里的函数是对象,则函数名实际上是指向函数对象的指针,而并不会与某个具体的函数绑定。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值