This is an alternative to the 'callback' technique of communication that many other API's, scripting languages, and toolkits use.
Signals:
A Signal is emitted when a particular event occurs. You will notice that many of the DAZ Script classes have a 'Signals' section in their documentation. These are not normal functions that can be called, rather these are Signals that are emitted when a particular event occurs on an object of the type in question. You can listen or connect to these signals so that you are notified whenever the event in question occurs.
Slots:
Whenever a Signal is emitted, any Slots that are connected to it are executed. A Slot is a function that recieves the notification of a Signal. In DAZ Script, any function or class method can be a Slot.
Connections:
In order for a Signal to activate a Slot, the Slot must be connected to the Signal. In DAZ Script, this is done by calling one of the global connect() functions. Signals may have one or more Slots connected to them. Also, Slots may be listening (connected) to more than one Signal.
Signal-Slot Connections can also be broken or disconnected. This happens automatically when the Object that emits the Signal is destroyed. Similarly, if the Object with the Slot that recieves the Signal is destroyed, the connection is automatically broken. Signal-Slot connections can also be broken programatically by calling one of the global disconnect() functions.