Overloading means that the same method name can be defined with several signatures; list of formal parameters (and their types).
Overloading means different things in different languages. Java is strongly typed (some may say "fiercely typed" in fact). It just means that there may be different versions of the function, and the compiler can determine which one is intended by considering the types of parameters when calling the function (method).
JavaScript is not like that; formal parameters for a function are just links by name in the function body, but otherwise there is nothing special in them, and any function can be called with any arguments and any number of them.
Some languages ββuse "overload" as a concept of runtime. In Erlang, these are not argument types that matter when choosing from several alternative options for a function; these are values.
edit - @MarkoTopolnik indicates that the problem is not so much in the "strength" (or "ferocity" :-) of the type of system as in its static nature. Java insists that types are explicitly declared almost everywhere, while JavaScript (with the exception of some new typed array constructs) does not work.
Pointy Oct 29 2018-12-12T00: 00Z
source share