DEV Community

Discussion on: HELP! can I set a methods value to values from the object in javascript?

 
larssonted profile image
Ted Larsson

But in my initial code I had methods to change both size and location. Is it possible to to still have those methods if I use let instead of const? (It was part of the exercise to have those methods)

Thread Thread
 
somedood profile image
Basti Ortiz

Ah, yes. Now we have reached the intricacies of JavaScript. When we assign a value to const, what we're really doing is we're just assigning a reference, not the actual value itself. I discuss the implication of this language feature in an old post of mine. 😉 How timely, isn't it?

As for adding methods for setting the size and location, we can simply add the usual setters and getters. We can do this because const stores references, not values.

function Rectangle(x, y, width, height) {
  this.x = x;
  this.y = y;
  this.width = width;
  this.height = height;
}

// Rinse and repeat these setters and getters
// for all properties
Rectangle.prototype.setX = function(newX) { this.x = newX; }
Rectangle.prototype.getX = function() { return this.x; }

const rect = new Rectangle(20, 30, 45, 100);
rect.getX(); // Output: 20
rect.setX(15);
rect.getX(); // Output: 15
Thread Thread
 
larssonted profile image
Ted Larsson

I can see some of the logic in this, ( we haven't
t touched on the subject of 'set & get' yet or prototyping but i will try to learn it in the coming week or two. thanks so much for taking the time to educate me :D

Thread Thread
 
somedood profile image
Basti Ortiz

No problem at all! All I ask is for you to pay this forward in the future. As developers, we gotta look out for each other. 😉