Как получить контекст вызова функции / объекта?
function define(prop, value) {
Object.defineProperty( /* context of caller */ , prop, {value: value});
}
function F() {
define('x', 42);
}
var f = new F();
Есть ли способ получить контекст (встроенный комментарий в коде выше) вызывающей функции?
Это работает нормально, если я связываюсь с этим (замените комментарий на this
) и внутри F
конструктор объявить var def = define.bind(this);
1 ответ
Решение
Как получить контекст вызова функции / объекта?
Вы не можете, вам придется сделать его доступным для вашего define
функция явно (передать его в качестве аргумента и т. д.).
И это хорошая вещь(тм).:-) Последнее, что вам нужно, это функции, имеющие доступ к контексту вызывающего и неконтролируемые изменения.