Check if a Value is an Object Created by the Object Constructor in JavaScript
Last Updated :
14 Oct, 2025
In JavaScript, objects can be created in multiple ways. To ensure a value is specifically created using the Object constructor, certain checks can be applied.
- Use
value.constructor === Object to verify the constructor. - Use
Object.prototype.toString.call(value) === '[object Object]' for a reliable check. - Excludes arrays, functions, and other non-plain objects.
- Helps distinguish plain objects from instances of custom classes or built-in types.
There are several methods that can be used to check if a value is created by the Object constructor in JavaScript.
The instance of operator tests whether an object's prototype chain contains the prototype property of a constructor. It checks if the provided value is an instance of the specified constructor or its derived classes.
Example
JavaScript
function isObjectInstanceof(value) {
return value instanceof Object;
}
// Test cases
const object1 = {};
const object2 = new Object();
const array = [];
const date = new Date();
const number = 42;
console.log(isObjectInstanceof(object1));
console.log(isObjectInstanceof(object2));
console.log(isObjectInstanceof(array));
console.log(isObjectInstanceof(date));
console.log(isObjectInstanceof(number));
Outputtrue
true
true
true
false
[Approach - 2] Using the Object.prototype.toString.call() method
Using Object.prototype.toString.call(), it retrieves the internal [[Class]] property, and comparing it to "[object Object]" verifies if the provided value is an object created by the Object constructor.
Example
JavaScript
function isObjectCreatedByObjectConstructor(value) {
return Object.prototype.toString.call(value) === '[object Object]';
}
// Test cases
const object1 = {};
const object2 = new Object();
const array = [];
const date = new Date();
const number = 42;
// true
console.log(isObjectCreatedByObjectConstructor(object1));
// true
console.log(isObjectCreatedByObjectConstructor(object2));
// false (arrays are objects, but not
// created by Object constructor)
console.log(isObjectCreatedByObjectConstructor(array));
// false (dates are objects, but not
// created by Object constructor)
console.log(isObjectCreatedByObjectConstructor(date));
// false (numbers are not objects)
console.log(isObjectCreatedByObjectConstructor(number));
Outputtrue
true
false
false
false
Using Object.getPrototypeOf(), we can retrieve the prototype of the provided object, and if it matches Object.prototype, we can verify if the value is an object created by the Object constructor.
Example
JavaScript
function isObjectCreatedByObjectConstructor(value) {
return Object.getPrototypeOf(value) ===
Object.prototype;
}
// Test cases
const object1 = {};
const object2 = new Object();
const array = [];
const date = new Date();
const number = 42;
// true
console.log(isObjectCreatedByObjectConstructor(object1));
// true
console.log(isObjectCreatedByObjectConstructor(object2));
// false (arrays are objects, but not
// created by Object constructor)
console.log(isObjectCreatedByObjectConstructor(array));
// false (dates are objects, but not
// created by Object constructor)
console.log(isObjectCreatedByObjectConstructor(date));
// false (numbers are not objects)
console.log(isObjectCreatedByObjectConstructor(number));
Outputtrue
true
false
false
false
[Approach - 4] Using a combination of type-checking and the constructor property
This approach involves multiple checks: it ensures that the value is an object (not null or other primitive types) and that its constructor is the Object constructor.
Example
JavaScript
function isObjectCreatedByObjectConstructor(value) {
return value !== null && typeof value === 'object'
&& value.constructor === Object;
}
// Test cases
const object1 = {};
const object2 = new Object();
const array = [];
const date = new Date();
const number = 42;
// true
console.log(isObjectCreatedByObjectConstructor(object1));
// true
console.log(isObjectCreatedByObjectConstructor(object2));
// false (arrays are objects, but not
// created by Object constructor)
console.log(isObjectCreatedByObjectConstructor(array));
// false (dates are objects, but not
// created by Object constructor)
console.log(isObjectCreatedByObjectConstructor(date));
// false (numbers are not objects)
console.log(isObjectCreatedByObjectConstructor(number));
Outputtrue
true
false
false
false
Explore
JavaScript Basics
Array & String
Function & Object
OOP
Asynchronous JavaScript
Exception Handling
DOM
Advanced Topics