Daily provides two primary entry points for JavaScript implementations: Daily Prebuilt and the Client SDK for JavaScript, both returning an instance of the same type (`DailyCall`). The call object and call frame are two different configurations of the same underlying type. When creating a new call instance, developers must consider whether to reuse or destroy the existing one. Reusing involves using the `getCallInstance()` method, while destroying involves calling the `destroy()` method after leaving the call (or directly). Destroying is recommended when resetting call state, freeing resources, or creating a new instance. The `leave()` and `destroy()` methods return Promises that must be awaited before recreating another call instance.