On May 18, 2011, at 3:35 PM, Nebojša Ćirić wrote:

>> 4. Should we rename LocaleInfo.collator()/numberFormat()/dateTimeFormat() 
>> into LocaleInfo.createCollator()...? It makes it clear we are creating new 
>> object.
> 
> The methods on the LocaleInfo constructor or are they really 
> LocaleInfo.prototype methods.  In other words are the results derived from a 
> specific LocaleInfo instance or is the result some sort of global value that 
> is independent of the instances. If the latter, why are they associated with 
> the LocaleInfo constructor?
> 
> They are prototypes:
> 
> LocaleInfo.prototype.collator()
> 
> I propose
> 
> LocaleInfo.prototype.createCollator()
> 
> since they actually create a new LocaleInfo.Collator (or DateTimeFormat or 
> NumberFormat) objects based on that locale info.
> 

It could go either way and there isn't a lot of relevant precedent in the ES 
built-in libraries to guide this.  If it is essential  an characteristic that a 
new object is being created I personally would be inclined to put something in 
the name to indicate that. Personally I might use newXXX rather than createXXX. 
 The other possibility is that you could make them be constructor functions so 
you would say:

     var myDtf =  new myLocale.DateTimeFormat(myOptions);

Since any native ES function can be used as a constructor (and will even do the 
right thing if it is carefully code with that possibility in mind) I guess that 
might argue for the non-imperative naming, particularly if it starts with an 
upper case. Then either the above or
   
     var myDtf =  myLocale.DateTimeFormat(myOptions);

would be equivalent.  I think they both read fine.

Allen

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to