Test whether a value has in its prototype chain a specified constructor as a prototype property.
npm install @stdlib/assert-instance-of
Alternatively,
- To load the package in a website via a
script
tag without installation and bundlers, use the ES Module available on theesm
branch. - If you are using Deno, visit the
deno
branch. - For use in Observable, or in browser/node environments, use the Universal Module Definition (UMD) build available on the
umd
branch.
The branches.md file summarizes the available branches and displays a diagram illustrating their relationships.
var instanceOf = require( '@stdlib/assert-instance-of' );
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
-
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 bool = ( {} instanceof Object ); // returns true bool = instanceOf( {}, Object ); // returns true
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
@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.
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.
See LICENSE.
Copyright © 2016-2023. The Stdlib Authors.