Subash
Subash

Reputation: 7256

Check if object has function defined using a string variable

Given following code, I want to check if someObject has bar function using the variable fn.

var SomeObject = function() {};

SomeObject.prototype.foo = function() {
   var fn = 'bar';

   // todo: I want to check if this object has 'bar' function.
   // if yes call it

   // Note: you can't do if(typeof this.bar === 'function')
   // got to use the variable fn
};

var OtherObject = function() {
    SomeObject.call(this);
};

OtherObject.prototype = Object.create(SomeObject.prototype);

OtherObject.prototype.bar = function() {
    console.log('great. I was just called.');
};

var obj = new OtherObject();
obj.foo();

Upvotes: 4

Views: 1117

Answers (1)

Antiokus
Antiokus

Reputation: 544

if (typeof this[fn] === 'function') {
    this[fn]();
}

Upvotes: 3

Related Questions