How to use arrow functions in object literal so that it will be able to access the elements in the object ?
// class person {
// name = "nripesh";
// surname = "neupane";
// changeSurname = (newSurname) => {
// this.surname = newSurname; // surname = newSurname also don't work.
// }
// }
// const nripesh = new person();
const nripesh = {
name: 'nripesh',
surname: 'neupane',
changeSurname: (newSurname) => {
console.log(this);
surname = newSurname;
},
};
console.log(nripesh.surname);
nripesh.changeSurname('Pariyar');
console.log(nripesh.surname);
I was expecting to get 1st output:neupane 2nd output: Pariyar
What i am getting 1st output:neupane 2nd output: neupane
// In changeSurname method, this refer to global this which is undefined and using just surname is also undefined. This works dine when i use
changeSurname: function(newSurname) {
this.surname = newSurname;
}