I read in the EcmaScript specification that certain methods are "generic". What does this mean?
Does it mean that the methods make little or no assumptions about the object bound to the this
value when the function is invoked?
I read in the EcmaScript specification that certain methods are "generic". What does this mean?
Does it mean that the methods make little or no assumptions about the object bound to the this
value when the function is invoked?
Does it mean that the methods make little or no assumptions about the object bound to the this value when the function is invoked?
Exactly that. Whenever you read the term "generic method", "intentionally generic" or "not generic", it is explicitly specified on what that function is generic (or not): the this
value (receiver) being an object of a certain kind, with specific internal slots. (examples are typed array methods)
Generic methods do not use such and do not throw when they don't find them, instead they use only the public (generic "object interface") properties (examples are array methods), or cast values to type they expect (examples are string methods).
In Object-Oriented Programming, a generic function is a function that uses the types of its arguments to automatically run the most appropriate method. From the EcmaScript draft:
Generic functions are function objects each with a set of attached methods. A call to a generic function matches the types of the actual arguments to the signatures of the attached methods and dispatches to the most appropriate method following deterministic rules.