JavaScript - невозможно определить переданное имя объекта - PullRequest
0 голосов
/ 28 февраля 2020

не может понять, как получить имя переданного объекта, рассмотрите этот код:

let a = {value: 9}
a['JS'] = {value: 5}
a['BS'] = {value: 3}

check(a['JS'])

function check(element) {
  console.log(element)
  // here I need to somehow determine that passed element has name `JS`
  // without using extra arguments
}

спасибо.

PS (element.constructor.name не работает)

PPS Найдено решение, которое close к тому, что мне нужно:

let a = {value: 9}
a['JS'] = {value: 5}
a['BS'] = {value: 3}

Object.defineProperty(a['JS'], 'name', {
  enumerable: false,
  writable: true
})

a['JS'].name = 'JS'

check(a['JS'])

function check(element) {
  console.log(element)
}

1 Ответ

1 голос
/ 28 февраля 2020

Вы можете передать внешний объект и проверить с помощью оператора in .

Невозможно проверить объект, где внешний объект имеет требуемый ключ.

function check(element) {
    console.log('JS' in element);
    console.log(element);
}

let a = { value: 9, JS: { value: 5 }, BS: { value: 3 } };

console.log(check(a));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...