Object

Object constructor.

Usage

var Object = require( '@stdlib/object/ctor' );

Object( value )

Returns a new object.

var o = new Object( null );
// returns {}

Properties

Object.prototype.constructor

Property whose value is a reference to the constructor function that created the instance object.

var o = new Object( null );
var ctr = o.constructor;
// returns Object

Methods

Object.assign( target, ...sources )

Assigns enumerable properties of one or more source objects to a target object.

var o = Object.assign( {}, { 'a': 1, 'b': 2 } );
// returns { 'a': 1, 'b': 2 }

Object.create( prototype, properties )

Returns a new object with the given prototype and properties.

var o = Object.create( null, {
    'a': {
        'value': 1
    },
    'b': {
        'value': 2
    }
});
// returns { 'a': 1, 'b': 2 }

function Person( first, last ) {
    this.first = first;
    this.last = last;
}

var p = Object.create( Person.prototype, {
    'first': {
        'value': 'Jane'
    },
    'last': {
        'value': 'Doe'
    }
});
// returns Person { 'first': 'Jane', 'last': 'Doe' }

Object.defineProperties( target, properties )

Defines new or modifies existing properties directly on an object, returning the object.

var o = Object.defineProperties( {}, {
    'a': {
        'value': 1
    },
    'b': {
        'value': 2
    }
});
// returns { 'a': 1, 'b': 2 }

Object.defineProperty( target, property, descriptor )

Defines a new property directly on an object, or modifies an existing property on an object, and returns the object.

var o = Object.defineProperty( {}, 'a', {
    'value': 1,
    'writable': true,
    'enumerable': true,
    'configurable': true
});
// returns { 'a': 1 }

Object.entries( obj )

Returns an array of a given object's own enumerable string-keyed property entries, i.e. [key, value] pairs.

var o = { 'a': 1, 'b': 2 };
var arr = Object.entries( o );
// e.g., returns [ [ 'a', 1 ], [ 'b', 2 ] ]

Object.freeze( o )

Freezes an object. A frozen object can no longer be changed; freezing an object prevents new properties from being added to it, existing properties from being removed, and existing properties from being changed.

var o = { 'a': 1 };
Object.freeze( o );
// returns { 'a': 1 }

o.b = 1;
var v = o.b;
// returns undefined

Object.getOwnPropertyDescriptor( o, p )

Returns an object that contains the properties of the given object.

var o = { 'a': 1 };
var d = Object.getOwnPropertyDescriptor( o, 'a' );
// returns { 'value': 1, 'writable': true, 'enumerable': true, 'configurable': true }

Object.getOwnPropertyDescriptors( o )

Returns an object whose properties are the result of calling Object.getOwnPropertyDescriptor() on every property of the given object.

var o = { 'a': 1, 'b': 2 };
var d = Object.getOwnPropertyDescriptors( o );
// returns { 'a': { 'value': 1, 'writable': true, 'enumerable': true, 'configurable': true }, 'b': { 'value': 2, 'writable': true, 'enumerable': true, 'configurable': true } }

Object.getOwnPropertyNames( o )

Returns an array of a given object's own property names.

var o = { 'a': 1, 'b': 2 };
var arr = Object.getOwnPropertyNames( o );
// e.g., returns [ 'a', 'b' ]

Object.getOwnPropertySymbols( o )

Returns an array of a given object's own property symbols.

var o = { 'a': 1 };
o[ Symbol( 'b' ) ] = 2;
var arr = Object.getOwnPropertySymbols( o );
// returns [ Symbol(b) ]

Object.getPrototypeOf( o )

Returns the prototype of an object.

var o = { 'a': 1 };
var p = Object.getPrototypeOf( o );
// returns {}

Object.hasOwn( o, p )

Returns a boolean indicating whether an object has a property with the specified name.

var o = { 'a': 1 };
var b = Object.hasOwn( o, 'b' );
// returns false

Object.prototype.hasOwnProperty( p )

Returns a boolean indicating whether an object has a property with the specified name.

var o = { 'a': 1 };
var b = o.hasOwnProperty( 'a' );
// returns true

Object.is( value1, value2 )

Returns a boolean indicating whether two values are the same value.

var b = Object.is( 1, 1 );
// returns true

b = Object.is( 1, '1' );
// returns false

Object.isExtensible( o )

Returns a boolean indicating whether an object is extensible (whether new properties can be added to it).

var o = { 'a': 1 };
var b = Object.isExtensible( o );
// returns true

Object.preventExtensions( o );
b = Object.isExtensible( o );
// returns false

Object.isFrozen( o )

Returns a boolean indicating whether an object is frozen. Frozen objects can no longer be changed; freezing an object prevents new properties from being added to it, existing properties from being removed, and existing properties from being changed.

var o = { 'a': 1 };
var b = Object.isFrozen( o );
// returns false

Object.freeze( o );
b = Object.isFrozen( o );
// returns true

Object.prototype.isPrototypeOf( o )

Returns a boolean indicating whether an object is in the prototype chain of another object.

var o = { 'a': 1 };
var p = { '__proto__': o };
var b = o.isPrototypeOf( p );
// returns true

Object.isSealed( o )

Returns a boolean indicating whether an object is sealed. An object is sealed if it is not extensible and all of its properties are non-configurable.

var o = { 'a': 1 };
var b = Object.isSealed( o );
// returns false

Object.seal( o );
b = Object.isSealed( o );
// returns true

Object.keys( o )

Returns an array of a given object's own enumerable property names.

var o = { 'a': 1, 'b': 2 };
var arr = Object.keys( o );
// e.g., returns [ 'a', 'b' ]

Object.preventExtensions( o )

Prevents new properties from being added to an object.

var o = { 'a': 1 };
Object.preventExtensions( o );
o.b = 2;
var b = ( o.b === void 0 );
// returns true

o.a = 3;
b = ( o.a === 3 );
// returns true

Object.prototype.propertyIsEnumerable( p )

Returns a boolean indicating whether a property is enumerable.

var o = { 'a': 1 };
var b = o.propertyIsEnumerable( 'a' );
// returns true

var arr = [ 1, 2, 3 ];
b = arr.propertyIsEnumerable( 'length' );
// returns false

Object.seal( o )

Seals an object, preventing new properties from being added to it (i.e., making it non extensible) and marking all existing properties as non-configurable.

var o = { 'a': 1 };
Object.seal( o );

o.b = 2;
var b = ( o.b === void 0 );
// returns true

Object.setPrototypeOf( o, proto )

Sets the prototype of an object.

var o = { 'a': 1 };
var p = { 'b': 2 };
Object.setPrototypeOf( o, p );

var b = ( o.b === 2 );
// returns true

Object.prototype.toLocaleString()

Returns a string representing the object.

var o = { 'a': 1 };
var str = o.toLocaleString();
// returns <string>

Object.prototype.toString()

Returns a string representing the object.

var o = { 'a': 1 };
var str = o.toString();
// returns <string>

Object.prototype.valueOf()

Returns the primitive value of the object.

var o = {};
var v = o.valueOf();
// returns {}

Object.values( o )

Returns an array of a given object's own enumerable property values.

var o = { 'a': 1, 'b': 2 };
var arr = Object.values( o );
// e.g., returns [ 1, 2 ]

Notes

  • If provided null or undefined, the function returns an empty object.
  • If provided an existing object, the function returns the input value unchanged.
  • Otherwise, if provided any other value (e.g., a number, string, etc), the function will return an object of the corresponding type.

Examples

var Object = require( '@stdlib/object/ctor' );

var values = [
    '5',
    5,
    true,
    false,
    null,
    void 0,
    [],
    {}
];

var i;
for ( i = 0; i < values.length; i++ ) {
    console.log( new Object( values[ i ] ) );
}
Did you find this page helpful?