`Object` is deep in the core of JavaScript, not just Prototype.

You can add static functions to `Object` fairly safely provided you
use obscure names:

    Object.myReallyObscureMethodName = function() {
        // ....

...but as you mentioned, you will be susceptible to naming conflicts.

What you must **never** do is add to `Object.prototype`:

    // DON'T DO THIS
    Object.prototype.myReallyObscureMethodName = function() {
        // ....

If you do that (the way it's shown above), then just about every
`for..in` loop in code running alongside yours will fail, because the
above adds an enumerable `myReallyObscureMethodName` property to *all

    var name;
    for (name in {}) {
        alert(name); // This gets reached, and alerts

...and that's just a Bad Thing(tm). (As of ECMAScript 5th edition,
it's *possible* to add non-enumerable properties to `Object.prototype`
using special syntax, but I still wouldn't do it.)

T.J. Crowder
Independent Software Engineer
tj / crowder software / com
www / crowder software / com

On Dec 11, 12:07 am, Luke <kickingje...@gmail.com> wrote:
> Hi,
> is it ok to extend Object (http://api.prototypejs.org/language/Object/
> ) with a custom function (I mean regarding name-conflicts, I want to
> name my function extendWrapped)? Or is it a Class that should better
> not be touched for some reason? It seems to be pretty deep in the core
> of Prototype, so I'm kinda cautious..
> Thanks
> Lukas

You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptacul...@googlegroups.com.
To unsubscribe from this group, send email to 
For more options, visit this group at 

Reply via email to