Search code examples
javascriptunique-id

JavaScript Object Id


Do JavaScript objects/variables have some sort of unique identifier? Like Ruby has object_id. I don't mean the DOM id attribute, but rather some sort of memory address of some kind.


Solution

  • No, objects don't have a built in identifier, though you can add one by modifying the object prototype. Here's an example of how you might do that:

    (function() {
        var id = 0;
    
        function generateId() { return id++; };
    
        Object.prototype.id = function() {
            var newId = generateId();
    
            this.id = function() { return newId; };
    
            return newId;
        };
    })();
    

    That said, in general modifying the object prototype is considered very bad practice. I would instead recommend that you manually assign an id to objects as needed or use a touch function as others have suggested.