Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialryanjones6
13,797 PointsI'm confused, we changed the value for (person.name), and when we print we see both values. Why? I come from Java OOP.
I learned OOP in Java. When I create an object called person. Instantiate the object with the name variable value of "Sarah". Then change it to "Rainbow Dash". Finally displaying the same sentence as in this example but in Java, I get ...
-- Hello, My Name is Rainbow Dash -- I live in the US -- But, I wish my name was Rainbow Dash
Sense I call the print function(method) at the end, just like this example, in Java, the name variable(parameter) becomes "Rainbow Dash". So why in JavaScript does it not change the first instance, when it printing after the name has changed?
ryanjones6
13,797 PointsTalked with a buddy, and figured out where my misunderstanding was. Thanks.
2 Answers
Tonye Jack
Full Stack JavaScript Techdegree Student 12,469 PointsJavaScript object values can only be modified, if called by the object.property name and assigning a new value after the declaration
like this
var person = {
name : 'Sarah',
country : 'US',
age : 35,
treehouseStudent : false,
skills : ['JavaScript', 'HTML', 'CSS']
};
person.name= 'John';
Now this prints out Hello my name is John.I live in US
But with Angular.js you can change the object property value quite easily.
melissakeith
3,766 PointsSo it doesn't change the original name of Sarah, because object.property only changes the value after the declaration. Is there another method that does change the original property value as well?
Tonye Jack
Full Stack JavaScript Techdegree Student 12,469 PointsWell since your declaring a variable you can simply just make it dynamic by prompting the User for their name or using a textbox to get the name and creating a new object property with the name.
person[name] = prompt("Whats your name? ");
return value is always a string
Steven Parker
231,248 PointsSteven Parker
231,248 PointsWhat do you get in JavaScript? And can you share the actual code?
I'd guess this was scope-related, but no way to tell without seeing the code.