2.9 KiB
2.9 KiB
isInheritedProperty
Test if an object has an inherited property.
Usage
var isInheritedProperty = require( '@stdlib/assert/is-inherited-property' );
isInheritedProperty( value, property )
Returns a boolean
indicating if a value
has an inherited property
.
var obj = {
'beep': 'boop'
};
var bool = isInheritedProperty( obj, 'beep' );
// returns false
bool = isInheritedProperty( obj, 'hasOwnProperty' );
// returns true
bool = isInheritedProperty( obj, 'bap' );
// returns false
Notes
-
The function does not throw when provided
null
orundefined
. Instead, the function returnsfalse
.var bool = isInheritedProperty( null, 'a' ); // returns false bool = isInheritedProperty( void 0, 'a' ); // returns false
-
Value arguments other than
null
orundefined
are coerced toobjects
.var bool = isInheritedProperty( 'beep', 'toString' ); // returns true
-
Non-symbol property arguments are coerced to
strings
.function Foo() { return this; } Foo.prototype.null = true; Foo.prototype[ '[object Object]' ] = true; var obj = new Foo(); var bool = isInheritedProperty( obj, null ); // returns true bool = isInheritedProperty( obj, {} ); // returns true
Examples
var isInheritedProperty = require( '@stdlib/assert/is-inherited-property' );
var bool = isInheritedProperty( {}, 'hasOwnProperty' );
// returns true
bool = isInheritedProperty( { 'a': 'b' }, 'a' );
// returns false
bool = isInheritedProperty( { 'a': 'b' }, 'c' );
// returns false
bool = isInheritedProperty( { 'a': 'b' }, null );
// returns false
bool = isInheritedProperty( null, 'a' );
// returns false
bool = isInheritedProperty( void 0, 'a' );
// returns false
bool = isInheritedProperty( { 'null': false }, null );
// returns false
bool = isInheritedProperty( { '[object Object]': false }, {} );
// returns false