|
1
6
你的代码是按照你引用的顺序排列的,是吗?单子出现在
如果是这样,那就是你的问题。这是相当微妙的!!),但假设您的两位引用代码是按照您显示的顺序排列的,下面是事情发生的顺序(我将在下面详细解释):
自从
您可以通过重新排序代码或将属性添加到
因为你没有
替换
原型对象,您刚刚添加到其中。
发生这种情况的原因有点技术性,我将主要遵从规范。当解释器进入一个新的“执行上下文”(例如,函数或全局-例如,页级-上下文)时,它执行事情的顺序不是严格的自上而下的源顺序,而是有阶段的。第一个阶段之一是实例化上下文中定义的所有函数;这会发生 之前 执行任何分步代码。在第10.4.1节(全球代码)、第10.4.3节(功能代码)和第10.5节(声明绑定)中详细介绍了它们的辉煌。 the spec 但基本上,函数是在第一行逐步代码之前创建的。-) 用一个单独的测试示例最容易看到这一点:
正如你所看到的,如果你运行它,
|
|
Abhijit Sarkar · 如何修复“闭包可能比当前函数更有效” 4 年前 |
|
Houman · 如果未调用闭包,如何使XCTest失败? 8 年前 |
|
|
Kapil_A · 如何将swift中使用的闭包写入目标c? 8 年前 |
|
|
Xendar · Jenkins管道模拟Groovy 8 年前 |
|
|
Ibrahim Mohammed · 函数不考虑闭包 8 年前 |