0

Consider the following code:

const obj = {
  a: 'foo',
  b: function () { return this.a }
}

console.log(obj.a)   // 'foo'
console.log(obj.b()) // 'foo'

const { a, b } = obj

console.log(a)   // 'foo'
console.log(b()) // undefined

When I destruct obj, b() cannot access a anymore.

How can I preserve obj scope and allow b() to access it's siblings properties/methods while descructuring?

paulodiovani
  • 1,208
  • 2
  • 16
  • 34

1 Answers1

0

@dayan-moreno-leon posted a good option.

But I just noticed that I can be handled simply by using always static calls:

const obj = {
  a: 'foo',

  b: function () { return obj.a } //HERE! :D
}

const { a, b } = obj

console.log(obj.a)   // 'foo'
console.log(obj.b()) // 'foo'

console.log(a)   // 'foo'
console.log(b()) // 'foo'
paulodiovani
  • 1,208
  • 2
  • 16
  • 34