Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
component:component_access:zh [2023/11/29 08:20]
hfsr [首选组件]
component:component_access:zh [2023/11/29 08:24]
hfsr [代理对象]
Line 54: Line 54:
 代理对象 代理对象
 ---- ----
-现在我们知道了如何获得组件地址,现在让我们看看如何与它们互。有两种方法可以做到这一点。一种是调用 `component.invoke(address,​ method, ...)` 。例如:+现在我们已经知道了如何获得组件地址,那么看看如何与它们。有两种方法可以做到这一点。一种是调用`component.invoke(address,​ method, ...)`。例如:
 ```lua ```lua
 local component = require("​component"​) local component = require("​component"​)
Line 60: Line 60:
 ``` ```
  
-通常而言,更好的方法是获取一个代理对象。代理对象是一个简单的表,为个API回调提供一个以该回调命名的函数。此外,每个代理都有两个字段:`address` 用来保存被包装的组件的地址`type` 用来保存组件的类型。你可以通过这种方法获得代理对象:+通常而言,更好的方法是获取一个代理对象。代理对象是一个简单的表,为个API回调提供的函数。此外,每个代理都有两个字段:`address`用来保存被包装的组件的地址`type`用来保存组件的类型。你可以通过这种方法获得代理对象:
 ```lua ```lua
 local component = require("​component"​) local component = require("​component"​)
 local proxy = component.proxy(address) local proxy = component.proxy(address)
  
--- 下面的调用是通过代理对象进行的+-- 上文调用的使用代理对象版本
 proxy.broadcast(port,​ data) proxy.broadcast(port,​ data)
  
 -- 常见的代理对象字段: -- 常见的代理对象字段:
-print(proxy.address) -- 传给上述 component.proxy 的地址+print(proxy.address) -- 传给上述component.proxy的地址
 print(proxy.type) -- "​modem"​ print(proxy.type) -- "​modem"​
 ``` ```
  
-通过 `component.getPrimary` 或 `component.xxx` 访问的首选组件实际上都是代理对象。+请注意,通过`component.getPrimary`或`component.xxx`访问的首选组件实际上都是代理对象。
  
 直接调用 直接调用