isMethodIn

Test if an object has a specified method name, either own or inherited.

Usage

var isMethodIn = require( '@stdlib/assert/is-method-in' );

isMethodIn( value, property )

Returns a boolean indicating if a value has a specified method name, either own or inherited.

var value = {
    'beep': 'boop'
};

var bool = isMethodIn( value, 'toString' );
// returns true

bool = isMethodIn( value, 'beep' );
// returns false

bool = isMethodIn( value, 'bap' );
// returns false

Notes

  • The function does not throw when provided null or undefined. Instead, the function returns false.

    var bool = isMethodIn( null, 'toString' );
    // returns false
    
    bool = isMethodIn( void 0, 'toString' );
    // returns false
    
  • Value arguments other than null or undefined are coerced to objects.

    var bool = isMethodIn( 'beep', 'toString' );
    // returns true
    
  • Non-symbol property arguments are coerced to strings.

    function noop() {
        // Example function...
    }
    
    var value = {
        'null': noop
    };
    var bool = isMethodIn( value, null );
    // returns true
    
    value = {
        '[object Object]': noop
    };
    bool = isMethodIn( value, {} );
    // returns true
    

Examples

var isMethodIn = require( '@stdlib/assert/is-method-in' );

var bool = isMethodIn( {}, 'toString' );
// returns true

bool = isMethodIn( { 'a': 'b' }, 'a' );
// returns false

bool = isMethodIn( { 'a': 'b' }, 'c' );
// returns false

bool = isMethodIn( { 'a': 'b' }, null );
// returns false

bool = isMethodIn( null, 'a' );
// returns false

bool = isMethodIn( void 0, 'a' );
// returns false

bool = isMethodIn( { 'null': isMethodIn }, null );
// returns true

bool = isMethodIn( { '[object Object]': isMethodIn }, {} );
// returns true