Глядя на ваш код, трудно сказать, чего вы на самом деле пытаетесь достичь . Тем не менее, вот несколько идей, которые могут иметь отношение.
Сначала давайте создадим пару объектов:
var rabbit = {
name: 'Peter',
hop: function () {
return this.name + ' hopped!'
},
jump: function () {
return this.name + ' jumped!'
}
}
var hairy_maclary = {
name: 'Hairy Maclary',
jump: function () {
return this.name + ' jumped over the fence!'
}
}
Теперь вы можете определить функцию, которая вызывает метод hop
в зависимости от того, какой объект ему передан:
function hop(object) {
return object.hop()
}
hop(rabbit) // 'Peter hopped!'
Я не уверен, почему вы сделали бы это, вместо того, чтобы напрямую вызывать hop
, но, возможно, вы захотите сделать дополнительные вещи до или после.
Если вы хотите, вы можете создать полностью общую функцию, которая будет вызывать данный метод для данного объекта:
function invokeMethod(object, method) {
object[method]()
}
invokeMethod(hairy_maclary, 'jump') // 'Hairy Maclary jumped over the fence!'
Это действительно странная вещь, которую хочется сделать. Возможно, вы могли бы дать больше информации о том, что вы на самом деле пытаетесь сделать, поскольку ваш пример кода довольно странный.