Encapsulation: Private Attribute

on in Methods, Events and Scopes
Last modified on

In JavaScript OOP there are attributes called private attributes. Knowing if an attribute is private or public, an API user can focus on the API as a whole.

Let’s create some private attributes.

Note: See a guid() example function here.

(function() {
    let private_id = guid(); // This function should generate a unique UUID

    let init = function() {
        // Private attribute holder
        this[private_id] = {};

        // Create_time is a private attribute
        this[private_id].creation_time = (new Date()).getTime();
    };

    // This is the public method accessing the private attribute
    let get_creation_time = function () {
        return this[private_id].creation_time;
    };

    // Anything listed below are public methods
    My_Class = Class.extend({
        init: init,
        get_creation_time: get_creation_time
    });
})();

Related posts