Есть ли способ узнать, где в функции вызывается определенное свойство? - PullRequest
0 голосов
/ 17 февраля 2020

Возможно, я плохо сформулировал название, но я думаю, что лучший способ объяснить, что я пытаюсь сделать, это показать пример ...

Итак, рассмотрим следующий код:

var obj={}
Object.defineProperty(obj, "a", { get: function() { return 1 }, enumerable:true, configurable:true } )
Object.defineProperty(obj, "b", { get: function() { return 2 }, enumerable:true, configurable:true } )
Object.defineProperty(obj, "c", { get: function() { return 3 }, enumerable:true, configurable:true } )

var codeString="return obj.a + obj.b + obj.c"

var func=Function(codeString)

func()//6

У меня есть объект со свойствами get и функцией, сделанной из строки. То, что я хотел бы сделать, это когда функция запущена (func()) и заданы c свойства get в функции, я хотел бы знать индекс в строке (codeString), где она называется из. Который я могу использовать / сообщить в функции get.

Так, например, когда свойство b вызывается в obj obj.b в функции, которая будет иметь индекс, скажем, 19 ..

Я не уверен, возможно ли это, и Я не мог придумать, как это сделать, поэтому подумал, что я бы выполнил это ..

Если это не имеет смысла, тогда, пожалуйста, скажите, и я постараюсь объяснить это лучше. Спасибо за любая помощь, которую вы можете иметь ...

...