Object.eq is ready for discussion

Jorge jorge at jorgechamorro.com
Tue Sep 7 02:59:42 PDT 2010


On 07/09/2010, at 11:39, Maciej Stachowiak wrote:
> On Sep 6, 2010, at 6:01 PM, Brendan Eich wrote:
>> On Sep 6, 2010, at 4:01 PM, Jürg Lehni wrote:
>> 
>>> I agree it's a good name, but how about Object.isIdentical? Wouldn't that follow existing naming conventions more closely?
>> 
>> It would following the verg-object-noun-phrase convention, but we have more than one convention.
>> 
>> Note how isNaN(x) and isFinite(x) are functions taking one parameter. Whereas Object.identical(a, b) tests whether two values *are* identical. Does "is" work still? Could we dodge the issue (as well as the implied preposition "to": isIdenticalTo) by using Jeff's "identical" suggestion?
>> 
>> A pure OOP (single receiver) naming convention as in Smalltalk might favor a isIdenticalTo: b (if it didn't use an operator symbol, as IIRC Smalltalk did: ==), but Object.identical is really a function (static method of Object, simply to avoid name pollution in any other object). Object.identical(a, b) seems better to me than any longer name involving "is" and/or "To".
>> 
>> For single-parameter tests, "is" or "has" followed by a NounPhrase is indeed the dominant naming convention. For a dyadic function to pair with Object.hashcode, Object.identical still seems best to me. The only other verb-free thought is to use the language in the ES5 spec (9.12) and call it Object.sameValue.
> 
> You could make it Object.areIdentical(a, b), but I don't think that reads very well.

Or even

Object["==="](a,b)

:-))

(I like Object.eq(), it makes the code shorter. Or even Object.isEq())
-- 
Jorge.



More information about the es-discuss mailing list