Есть ли способ эффективно проверить, является ли переменная объектом или массивом в NodeJS и V8?
Я пишу модель для MongoDB и NodeJS, и для перемещения по дереву объектов мне нужно знать, является ли объект простым (Number, String,...) или составным (Hash, Array).
Кажется, что V8 имеет быстрый встроенный Array.isArray, но как проверить, является ли объект объектом? Я имею в виду сложный объект, например hash {} или экземпляр класса, а не что-то вроде new String()?
Обычно это может быть сделано следующим образом:
Object.prototype.toString.call(object) == "[object Object]"
или это:
object === Object(object)
Но похоже, что эти операции не из дешевых, может быть, есть еще более эффективные? Это нормально, если он не универсален и не работает на всех двигателях, мне нужно его только для работы на V8.