On Nov 30, 2008, at 1:11 PM, Peter Michaux wrote:

On Sat, Nov 29, 2008 at 9:49 PM, Mark S. Miller <[EMAIL PROTECTED]> wrote:

var self = {
  to toString() {
    return '<' + self.getX() + ',' + self.getY() + '>';
  },
  to getX() { return x; },
  to getY() { return y; }
  let pubInstVar: 4,
  const pubInstConst: -4
};
return self;

The "to" isn't a typo, but wasn't explained. It creates a non- writable, non-enumerable, non-configurable property whose value is a frozen function.

What is the motivation for choosing the string "to"?

IIRC, Mark's E language used that preposition. Think "in order to..." before the verb-phrase-named function.

It may grow on you -- I see its intent, but observe that others such as Peter miss it because "to" is an overloaded term in English and in JS (to toString shows two among the plurality of meanings).

What's more, 'to' seems unnecessary in JS object initialisers, given the unambiguous property name syntax. Instead of : after the property name (which could be an identifier, number, or string), a ( begins a formal parameter list.

ES4 allowed const and var before the property initialiser, to specify DontDelete and optionally ReadOnly, as opposed to neither for the property initialisers in ES3. In this light, var is better than let.

Using let before a property name in an object initialiser might plausibly create a "lexical" member of the new object, whatever that could be. It wouldn't be a property of the kind defined by var or const. But without an implicit closure I don't see how to do this, and EIBTI.

/be

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

Reply via email to