@stdlib/assert-instance-of
v0.2.2
Published
Test whether a value has in its prototype chain a specified constructor as a prototype property.
Downloads
75,669
Readme
instanceOf
Test whether a value has in its prototype chain a specified constructor as a prototype property.
Installation
npm install @stdlib/assert-instance-of
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
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.
Notice
This package is part of stdlib, a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more.
For more information on the project, filing bug reports and feature requests, and guidance on how to develop stdlib, see the main project repository.
Community
License
See LICENSE.
Copyright
Copyright © 2016-2024. The Stdlib Authors.