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
TypeError
if provided aconstructor
argument which is not callable.var bool = instanceOf( {}, null ); // throws <TypeError>
While the prototype of an
object
created using object literal notion isundefined
, the function returnstrue
when provided anobject
literal and theObject
constructor. This maintains consistent behavior with theinstanceof
operator.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