【发布时间】:2019-03-09 02:44:51
【问题描述】:
我注意到在 Google text adventure game easter egg 中,每次您在 javascript 控制台上输入变量时都会调用函数。
这是怎么做到的?
【问题讨论】:
-
@Baruch 呃,不,那个是关于 SpiderMonkey 引擎中的 CLI 输入的。
标签: javascript function
我注意到在 Google text adventure game easter egg 中,每次您在 javascript 控制台上输入变量时都会调用函数。
这是怎么做到的?
【问题讨论】:
标签: javascript function
它不适用于任意变量。它不适用于任意表达式。它仅适用于给定的那些命令(是、否、北、南、东、西、上、下、抓取、为什么、库存、使用、帮助、出口、地图和朋友)。
无论如何,它对变量 并不真正起作用。当你输入yes 时,你得到的是全局window.yes 属性——他们已经为它定义了一个getter。将评估此 getter,返回字符串 "yes",并将下一个输出异步记录到控制台。
【讨论】:
Object.defineProperty(window, "yes", { get() { setTimeout(console.log, 0, "hello"); return "yes"; })。可以在调试器中查看彩蛋的代码,搜索defineProperty
},它应该是Object.defineProperty(window, "yes", { get() { setTimeout(console.log, 0, "hello"); return "yes"; }})。但是感谢您的代码!