Существует ли возможность средствами JavaScript получить доступ к коду функции которая задана "внутри" свойства объекта? Для методов (функций) объекта хорошо работает toString(), но для свойств, по понятным причинам, результат мне не подойдет.
Нужно реализовать сохранение/восстановления объекта через текстовый формат (JSON например).
var objA = {v:2};
var objB = {v:2};
var objC = {fn:function(){return objA.v + objB.v} };
Object.defineProperty(objC,"pr",{
get: function(){ return objA.v + objB.v },
enumerable: true,
configurable: true
});
console.log('objC.fn()= ' + objC.fn());
console.log('objC.pr= ' + objC.pr;
console.log('objC.fn.toString()= ' + objC.fn.toString());
console.log('objC.pr.toString()= ' + objC.pr.toString());
результат:
objC.fn()= 4
objC.pr= 4
objC.fn.toString()= function () { return objA.v + objB.v; }
objC.pr.toString()= 4
т.е. хотелось бы каким-то хитрым способом в последней строке получить код свойства "pr" (как в предпоследней), а не 4. ))
p.s.:
не факт что важно, но на всякий случай скажу, что все это применяется не в браузере, а в десктоп приложении (c++ Qt) с использованием класса QJSEngine.
заранее спасибо за любые идеи.