写了一个js游戏,里面的变量涉及到速度等隐私数据,怎样写js可以保证不被开发者恶意修改?
解决方案
你在构建函数里写的变量如果不设在this
上,就无法在外面修改,如下:
class Vehicle { constructor(type) { this.type = type; // private属性 let speed = 10; this.getSpeed = () => speed; }}const vehicle = new Vehicle('Test');vehicle.type = 'Hello' //=> 没问题vehicle.speed = 15; //=> 不会改构建函数里的`speed`vehicle.getSpeed(); //=> 10
设在this
的属性都是public的,构建函数里的let
, var
和const
都无法在外面修改。