马上就要进入JS面向对象的阶段了,在这之前,我们在了解一下JS这个“新换旧”的语言如何模拟实现函数重载。
——
先了解一下JS的“新换旧”特性:
发现什么?不论如何,show代表的都是你的代码中的最后一次对他定义的函数。
函数执行,永远是找最后被定义的函数来执行。
——
可是函数重载可以根据 参数的 类型、个数来判断到底该执行哪一个函数,这在JS里怎么搞?
可以搞!JS的函数虽然有参数列表,但是你也发现上例中,你少填的那个参数不过就是undefined,他不会报错,只是参数为“未定义”。
JS函数的参数列表只是一个形式!
说白了,JS函数的参数是无限的,而且JS函数也总有返回值,只不过如果你return;不明确返回什么的时候,返回值就是undefined“未定义”罢了。可是undefined也是JS的基本类型之一。
函数重载在JS里面,我们无法利用形参(即函数定义时的参数列表的参数名称),那么我们可以用arguments这个对象来模拟。
——
下面举个例子,例子中的函数可以实现:
若是一个参数为数值,则提示“数值:”和数的值;
若是一个参数为文本,则提示“文本:”和文本内容;
若是两个数值参数,则提示“数值之和:”和两数之和。
————
虽然比真正的函数重载麻烦了许多,但是总归有实现函数重载的方法。
而且JS以最精简的对象类型出现,却能够通过各种手段实现各种各样的高级编程语言才拥有的方法,JS真是灵活的语言!