一个控制台小游戏

这是一个很粗糙控制台游戏.

如果你好奇这个游戏的操作原理, 那么你可以去这个工程的 Github仓库 看看, 或者继续往下看.

原理

在源代码 lib.js 中, 你可以在 setCommand() 方法中找到下面的代码:

1
2
3
4
5
6
7
8
9
// command 是要设置的指令名称
// func 要执行的指令程序
setCommand(command, func) {
window[command] = command; // 将指令名称设为全局变量
Object.defineProperty(window, command, { // 设置 getter
get: func,
enumerable: true
});
}

代码解释

将要设置的指令定义为全局变量, 接着为这个全局变量设置getter.

这样, 当你在控制台输入指令时, getter便会执行刚刚设置的程序.