Chrome 的小恐龙游戏,被我破解了...
python之禅
共 1948字,需浏览 4分钟
·
2020-07-12 00:17
一个阳光明媚的周末,透光的窗帘把我从睡梦中叫醒,大脑说今天是周六,可以慵懒个一上午,于是开心地打开我的 Mac 准备看两集 Rick and Morty 再起床洗漱。
- 我在干什么?尝试自定义这个游戏
- 为什么要看全局变量?因为假设关于游戏的对象被暴露在了全局
- 如果没暴露在全局?行,那我就放弃了(周末的早晨我可不想在 sources 里面扒源码)
然后我又发现了另一个有趣的方法:顾名思义,这是用来给小恐龙设置奔跑速度的方法,但是怎么调用呢?由构造函数创建的实例对象,可通过原型链访问构造函数 prototype 上的变量和方法,也就是说,如果能找到这个小恐龙对应的实例,那么就能直接调用这个 setSpeed 方法了。既然 Google 的前端工程师已经把这么多变量搞到全局了,那么...会不会也在全局存储了这个小恐龙实例?我重新审视了一遍那 43 个多出来的全局变量,并没有找到。我下意识地随手输入了一下这个 Runner 构造函数,真是山重水复疑无路柳暗花明又一村呐:我甚至都不需要看 Runner 函数的全部代码,就知道原来实例被保存在一个名叫 instance_ 的 Runner 自身属性里,论起好变量名的重要性,行,那我就不客气了,直接调用!于是...当我凝视着这个飞奔的无敌小恐龙时,我突然觉得...一切变得...
评论