我想知道检测何时通过控制台直接调用方法或函数的最佳方法。据我目前了解,不可能在相同的函数调用中直接检测到它,但是使用函数的.call()
and.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);
在我的实际代码中将直接从控制台调用和我自己的代码区分开来,但这显然不是万无一失的,因为同样的代码也可以从控制台执行以达到预期的效果。
我想要一种能够从两个地方调用该函数的方法,然后将调用的位置分开。如果没有办法做到这一点,那么尝试阻止执行的最佳方法是什么?最好根本不公开任何方法,并将所有内容保存在一个封闭的匿名函数中吗?