The rough convention we were following for ES5 was that Object.* functions that
were expected to be used in application layer code had short imperative names
like keys, create, freeze, etc. Functions that were expected to be primarily
used in meta layers of framework or other reflective purposes have long
descriptive names. The wordiness of the names is largely a function of the
degrees of variation that might be consider. For example, own vs. all
properties or property names vs property descriptors.
getOwnPropertyDescriptor/getOwnPropertyNames are the winners in that category.
defineProperty/defineProperties don't need the "own" because properties are
always defined on a specific object and don't need "descriptor" because there
are no similar operations that don't use descriptors.
Allen
On Aug 7, 2011, at 12:36 PM, Dmitry A. Soshnikov wrote:
> Hi again,
>
> I'm about to propose `Object.methods(obj)` meta-method (or
> `Object.getMethods(obj)`). Unfortunately naming convention is inconsistent
> (arrgh!) -- `Object.keys` (hello, Ruby and Prototype.js) vs.
> Object.getOwnPropertyNames (o_O hello Java), so the method name can be chosen
> later.
>
> But the idea is to get the properties (or their names) which are methods on
> the object.
>
> Proposed:
>
> var foo = {
> bar: function () {},
> __proto__: {baz: function () {}}
> };
>
> - Object.getMethods(foo) -> {bar: function () {}, baz: function () {}}
>
> - Object.getOwnMethod(foo) -> {bar: function () {}}
>
> - Object.getMethodNames(foo) -> ["bar", "baz"]
>
> - Object.getOwnMethodNames(foo) -> ["bar"]
>
> Of course it can be easily implemented in JS itself just filtering the
> Object.getMySummerVacationWasLongOwnPropertyNames or Object.keys(...), but
> directly in the engine it will be more efficient.
>
> Dmitry.
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
>
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss