Как получить контекст вызова функции / объекта?

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 функция явно (передать его в качестве аргумента и т. д.).

И это хорошая вещь(тм).:-) Последнее, что вам нужно, это функции, имеющие доступ к контексту вызывающего и неконтролируемые изменения.

Другие вопросы по тегам