JS模拟面向对象全解(三、函数重载)

马上就要进入JS面向对象的阶段了,在这之前,我们在了解一下JS这个“新换旧”的语言如何模拟实现函数重载。

——

先了解一下JS的“新换旧”特性:


发现什么?不论如何,show代表的都是你的代码中的最后一次对他定义的函数。

函数执行,永远是找最后被定义的函数来执行。

——

可是函数重载可以根据 参数的 类型、个数来判断到底该执行哪一个函数,这在JS里怎么搞?

可以搞!JS的函数虽然有参数列表,但是你也发现上例中,你少填的那个参数不过就是undefined,他不会报错,只是参数为“未定义”。

JS函数的参数列表只是一个形式!

说白了,JS函数的参数是无限的,而且JS函数也总有返回值,只不过如果你return;不明确返回什么的时候,返回值就是undefined“未定义”罢了。可是undefined也是JS的基本类型之一。

函数重载在JS里面,我们无法利用形参(即函数定义时的参数列表的参数名称),那么我们可以用arguments这个对象来模拟。

——

下面举个例子,例子中的函数可以实现:

若是一个参数为数值,则提示“数值:”和数的值;

若是一个参数为文本,则提示“文本:”和文本内容;

若是两个数值参数,则提示“数值之和:”和两数之和。


————

虽然比真正的函数重载麻烦了许多,但是总归有实现函数重载的方法。

而且JS以最精简的对象类型出现,却能够通过各种手段实现各种各样的高级编程语言才拥有的方法,JS真是灵活的语言!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值