Лучший способ определить, когда функция вызывается из консоли
Я хотел бы знать, как лучше всего определить, когда метод или функция вызывается напрямую через консоль. Насколько я сейчас понимаю, невозможно непосредственно обнаружить его при идентичных вызовах функций, но используя.call()
а также.apply()
методы функции я могу передать дополнительные данные черезthis
объект.
Учитывая следующую структуру кода:
(function(){
var Player = {money: 0};
window.giveMoney = function(amount){
if (this.legit !== true)
throw new Error("Don't try to cheat!");
Player.money += amount;
}
})();
Я мог бы вызвать функцию, используя
window.giveMoney.call({legit: true}, 300);
в моем реальном коде я расскажу о прямом вызове из консоли и о моем собственном коде, но это, очевидно, не является ошибкой, поскольку тот же самый код также может быть выполнен из консоли для достижения желаемого эффекта.
Я хотел бы иметь возможность вызывать функцию из обоих мест, а затем указывать места вызова отдельно. Если нет способа сделать это, каков лучший способ попытаться предотвратить выполнение в любом случае? Лучше всего просто не раскрывать какие-либо методы и хранить все внутри одной закрытой анонимной функции?