how to select parent property in object javascript

Viewed 28

how to put the user hobby property (in line 2) into the friend hobby property (in line 6)

const user = {
    hobby: 'sports',
    friends: [{
        name: 'jhon',
        age: '22',
        get hobby () {
            // how to return user hobby here?         
        }
    }]
}
1 Answers
const user = {
    hobby: 'sports',
    friends: [{
        name: 'jhon',
        age: '22',
        get hobby () {
            return user.hobby         
        }
    }]
}

user.friends[0].hobby // 'sports'

Or if you have a list of those objects and you want to add the getter to them:

const users = [
    {
        hobby: 'sports',
        friends: [{ name: 'jhon', age: 22 }]
    }, {
        hobby: 'cooking',
        friends: [{ name: 'jane', age: 23 }]
    }
]

for (const u of users)
    Object.defineProperty(u.friends[0], 'hobby', {
        get() {
            return u.hobby
        }
    })

users[0].friends[0].hobby // 'sports'
users[1].friends[0].hobby // 'cooking'
Related