Encapsulation: Private Attribute

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
    });
})();

on in Methods, Events and Scopes | Last modified on

Related Posts