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
See Also
@stdlib/assert/is-prototype-of: test if an object's prototype chain contains a provided prototype.@stdlib/utils/constructor-name: determine the name of a value's constructor.@stdlib/utils/inherit: implement prototypical inheritance by replacing the prototype of one constructor with the prototype of another constructor.@stdlib/utils/type-of: determine a value's type.