Table of Contents

Javascript - Object Accessor (getter / setter)

About

Object - (Accessors|Get|Getter) Methods in javascript of property

Since ECMAScript 5.

Usage

Management

new Object: Set / get

Example:

var user = { 
    private_name: '',
    get name() { console.log('name was accessed'); return this.private_name; },
    set name(name) { console.log('name was set'); this.private_name = name;  }
};
user.name = 'nico'; 
console.log(user.name); 

Actual Object

defineProperty

Ref

const user = { private_name: '' };

Object.defineProperty(user, 'name', { 
  get: function() { console.log('name was accessed'); return this.private_name; },
  set: function(name) { console.log('name was set'); this.private_name = name;  }
});

user.name = 'nico'; 
console.log(user.name); 

defineGetter

The __defineGetter__ (deprecated): Ref

Example:

window.navigator.sniffed = false;
const userAgent = window.navigator.userAgent;
window.navigator.__defineGetter__('userAgent', function() {
    window.navigator.sniffed = true;
    return userAgent;
});
console.log("The userAgent property was read: "+window.navigator.sniffed);
console.log("The user Agent is "+window.navigator.userAgent);
console.log("The userAgent property was read: "+window.navigator.sniffed);

Remove

delete object.setter
delete object.getter