Вы не можете сделать что-либо из вещей, которые вы перечислили. Есть две разные вещи здесь:
Получение значения myObject
Getting имя свойства, которое этот объект используется для обозначения функции
Значение перешедшей в aaa
в вашем коде просто ссылка на функцию. Ссылка на объект не передается в aaa
, а также никакая информация о том, какое свойство используется объектом для ссылки на функцию. Ни один из них не может быть выведен или получен из самой ссылки функции. (Функция может иметь имени, который мог на современных двигателях JavaScript быть доступом при помощи свойства name
, но это также может отличаться от имени свойства, что объект используется для обозначения к нему.)
В для того чтобы сделать это, вы должны передавать их по отдельности, либо в виде отдельных аргументов:
aaa(myObject, "myFunction");
или как объект
aaa({obj: myObject, prop: "myFunction"});
в последнем случае aaa
может выглядеть
function aaa(info) {
// Use info.obj and info.prop here
// The call would be
info.obj[info.prop]();
}
Другой вариант, если вы на самом деле не нужна ссылка на объект для целей осуществления вызова, за исключением, является использование Function#bind
:
aaa(myObject["myFunction"].bind(myObject));
aaa
получит ссылку на функцию, которая, когда вызванный, вызовет исходную функцию с this
со ссылкой на myObject
. Так что aaa
не может получить ссылку на объект, но он все равно может позвонить.
Ваш вопрос еще не совсем ясен, пожалуйста, уточните дальнейшие –