|
|
||
|---|---|---|
| .. | ||
| docs | ||
| lib | ||
| package.json | ||
| README.md | ||
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 bool = ( {} instanceof Object ); // returns true bool = instanceOf( {}, Object ); // returns true
Examples
var Number = require( '@stdlib/number/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