---
code: javascript_sdk_multi_appid
name: "多实例"
wikiToken: Bex4w1r3EillTpksN2GcAooynVg
parentWikiToken: XB4ywbB3LiMvFWkDUVDcRY0pnlm
updateTime: 1763108982000
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v5.0&lan=zh-CN&code=javascript_sdk_multi_appid
---
# 多实例

可以通过调用 `initInstance` 方法，可以创建子实例对象。其参数为子实例名称。之后您可以通过该名称调用子实例的接口。

```
// 创建一个名字为 newInstance 的实例
ta.initInstance("newInstance");
// 为子实例设置 distinct_id 并发送 test_event 的事件
ta.newInstance.setDistinctId("new_distinct_id");
ta.newInstance.track("test_event");
```

默认情况下，子实例与主实例采用相同的配置（`appId`, `serverUrl`等）。并且默认情况下，子实例不会开启本地缓存。

如果需要为子实例单独配置参数，可以在初始化时传入配置信息，通过在配置信息中传入不同的 `appId` 值，可以达到向不同项目上报数据的功能:

```
// 定义子实例的配置参数
var param = {
  appId: "debug-appid",
  serverUrl: "ANOTHER_SERVER_URL",
  persistenceEnabled: true, // 开启子实例的本地缓存，子实例本地缓存根据子实例名称 name 区分
  send_method: "image",
  showLog: true
};

// 初始化子实例
ta.initInstance("anotherInstance", param);

//往主实例项目中上报数据
ta.track("Event");

//往子实例项目中上报数据
ta.anotherInstance.track("Event");
```

主实例与子实例的 ID 体系不互通，公共属性不互通，可以单独为每个实例设置用户 ID，以下案例通过这一特性，为邀请好友这一事件的邀请者和被邀请者，分别上报了邀请成功和被邀请事件

```
//主实例是被邀请的新用户，子实例是邀请者
ta.login("invitee");
ta.anotherInstance.login("inviter");
//新用户触发被邀请事件
ta.track("be_invited");
//邀请者触发邀请新用户事件
ta.anotherInstance.track("invite_new_user");
```
