+ 2

how to update age with updateAge method parameter

im trying to pass a value inside updateAge method to update object properties i cant update person1.age values it returns the same value which is 12 original property plz help me how to update using my existing method function Person(Name, age, color){ this.Name= Name; this.age= age; this.color=color; this.updateName= function(ages){ this.age = this.age + ages; }; } let person1 = new Person("a", 12, "white"); let person2 = new Person("b", 25, "bkack"); person1.updateName(21); console.log(person1.age);

5th Jan 2019, 4:40 AM
Danielov
Danielov - avatar
5 Réponses
+ 2
Hi daneillonge, You are now doing a sum of the updated age and the initial age which results in 33. Remove the 'this.age' before '+ ages' will fix the issue since it won't sum both values: function Person(Name, age, color){ this.Name= Name; this.age= age; this.color=color; this.updateName= function(ages){ this.age = ages; }; } let person1 = new Person("a", 12, "white"); let person2 = new Person("b", 25, "bkack"); person1.updateName(21); console.log(person1.age); //_ 21 Additional: U can write this in ES6 since you have more options inside constructors and classes with less code. class Person{ constructor(name,age,color){ this.name = Name; this.age = Age; this.color = Color; } setnewAge(Age){ this.age = Age; } } let person1 = new Person("a", 12, "white"); let person2 = new Person("b", 25, "bkack"); person1.updateName(21); console.log(person1.age); //_ 21
5th Jan 2019, 4:47 AM
🌴Vincent Berger🌴
🌴Vincent Berger🌴 - avatar
+ 1
thanks by the way i solve it i forget i have to assign the update age instead of adding it incrementing confusing happen in coding world hehe😊
7th Jan 2019, 2:58 AM
Danielov
Danielov - avatar
+ 1
i think it would look cool if we add arrow function
7th Jan 2019, 2:59 AM
Danielov
Danielov - avatar
+ 1
i have question what is the purpose of using function setnewAge outside constructor instead of method inside constructor is it both similar or there is code efficiency
7th Jan 2019, 3:02 AM
Danielov
Danielov - avatar
0
daneillonge, The class syntax is not implementing a new object-oriented model to JavaScript. JavaScript classes provide a much simpler and clearer syntax to create objects. In ES6 the function is called a static method of the class. Additional you can extent a class to combine the current class with another class. https://youtu.be/CwAU1wYeHiM The arrow function is a anonymous function which has a shorter syntax. and it is indeed nice to use😊
7th Jan 2019, 3:12 PM
🌴Vincent Berger🌴
🌴Vincent Berger🌴 - avatar