I create a very simple object Person and calling constructor with a name parameter, as i haven't created any local variables inside Person constructor, then how name property gets set.
function Person(name) {
    Object.defineProperty(this, "name", {
        get: function() {
            return name;
        },
        set: function(newName) {
            debugger;
            name = newName;
        },
        enumerable: true,
        configurable: true
    });
    this.sayName = function() {
        console.log(this.name);
    };
}
var p1 = new Person("mike");
how name property get set ?
 
     
     
     
    