【问题标题】:call a function every time i return a variable?每次我返回一个变量时调用一个函数?
【发布时间】:2019-03-09 02:44:51
【问题描述】:

我注意到在 Google text adventure game easter egg 中,每次您在 javascript 控制台上输入变量时都会调用函数。

这是怎么做到的?

【问题讨论】:

标签: javascript function


【解决方案1】:

它不适用于任意变量。它不适用于任意表达式。它仅适用于给定的那些命令(是、否、北、南、东、西、上、下、抓取、为什么、库存、使用、帮助、出口、地图和朋友)。

无论如何,它对变量 并不真正起作用。当你输入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"; }})。但是感谢您的代码!
猜你喜欢
  • 1970-01-01
  • 2021-12-13
  • 2013-06-02
  • 2016-11-22
  • 1970-01-01
  • 2020-12-01
  • 2014-08-30
  • 1970-01-01
  • 2013-02-28
相关资源
最近更新 更多