如何编写具有全局作用域的函数 ?

在实体元素的服务端或客户端模块中定义的每个函数,都会成为该元素的一个属性。

因此,借助 任务树 , 你可以在项目的任意模块中,访问在客户端或服务端模块内声明的任意函数。

例如,若我们在 客户(Customers) 的客户端模块中声明了一个函数 some_func , 就可以在项目的任意模块中调用它。需要注意的是, task 在客户端中是一个全局变量。

task.customers.some_func()

在服务端中, task 不是全局变量,但触发/调用它的实体项会被传入至每个由 server 方法调用的事件处理程序和函数中。 因此,如果 some_func 函数是在 Customers 的服务端模块中声明的, 在函数或事件处理程序中就可以按如下方式调用:

def on_apply(item, delta, params):
  item.task.customers.some_func()

需要注意,事件处理程序本质就是函数,同样也可以由其他模块调用。