@Banjamin
Пишу

Как отличить класс от объекта?

Здравствуйте. У меня есть массив в котором есть объекты и классы. Какую проверку нужно делать в цикле что бы отличить одни от других.
  • Вопрос задан
  • 107 просмотров
Пригласить эксперта
Ответы на вопрос 2
Aleksandr-JS-Developer
@Aleksandr-JS-Developer
Бери и делай
Если у вас только объекты и классы, то проверка на typeof у класса вернет 'function', а у объекта 'object'

class AwesomeClass {
  constructor(){}
}

console.log(typeof AwesomeClass, typeof {}) // function object

В вашем случае это что-то типа этого
const arr = [
	class C0 {},
  class C1 {},
  class c2 {},
  {},
  {}
];

arr.forEach( item => {

  if( typeof item === 'function' ){
    console.log( 'is a class' )
    // ...

  } else if( typeof item === 'object' ){
    console.log( 'is a object' )
    // ...

  } else {
    console.log( 'some else' );
  }

});


Ссылки:
developer.mozilla.org
Ответ написан
Seasle
@Seasle Куратор тега JavaScript
\( ゚ヮ゚)/
class Example {
  constructor() {}
}

const entries = [
  new Example(),
  {},
  new Object(),
  [],
  new Array(),
  42,
  'Hello World',
  true,
  null,
  undefined
];

entries.forEach((entry, index) => {
  if (entry instanceof Example) {
    console.log(`is example - ${index}`);
  } else if (entry instanceof Array) {
    console.log(`is array - ${index}`);
  } else if (entry instanceof Object) {
    console.log(`is object - ${index}`);
  } else {
    console.log(`is ${typeof entry} - ${index}`)
  }
});
/*
is example - 0
is object - 1
is object - 2
is array - 3
is array - 4
is number - 5
is string - 6
is boolean - 7
is object - 8
is undefined - 9
*/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы