instanceOf
Test whether a value has in its prototype chain a specified constructor as a prototype property.
Usage
var instanceOf = require( '@stdlib/assert/instance-of' );
instanceOf( value, constructor )
Tests whether a value has in its prototype chain a specified constructor as a prototype property.
var inherit = require( '@stdlib/utils/inherit' );
function Foo() {
return this;
}
function Bar() {
return this;
}
inherit( Bar, Foo );
var bar = new Bar();
var bool = instanceOf( bar, Foo );
// returns true
Notes
The function throws a
TypeErrorif provided aconstructorargument which is not callable.var bool = instanceOf( {}, null ); // throws <TypeError>While the prototype of an
objectcreated using object literal notion isundefined, the function returnstruewhen provided anobjectliteral and theObjectconstructor. This maintains consistent behavior with theinstanceofoperator.var Object = require( '@stdlib/object/ctor' ); var bool = ( {} instanceof Object ); // returns true bool = instanceOf( {}, Object ); // returns true
Examples
var Number = require( '@stdlib/number/ctor' );
var Object = require( '@stdlib/object/ctor' );
var Function = require( '@stdlib/function/ctor' );
var instanceOf = require( '@stdlib/assert/instance-of' );
var bool = instanceOf( [], Array );
// returns true
bool = instanceOf( [], Object );
// returns true
bool = instanceOf( {}, Object );
// returns true
bool = instanceOf( new Date(), Date );
// returns true
bool = instanceOf( /.*/, RegExp );
// returns true
bool = instanceOf( instanceOf, Function );
// returns true
bool = instanceOf( null, Object );
// returns false
bool = instanceOf( 5, Number );
// returns false
bool = instanceOf( '5', String );
// returns false
bool = instanceOf( void 0, Object );
// returns false
bool = instanceOf( {}, Array );
// returns false
bool = instanceOf( {}, Function );
// returns false