### 一、App(Object object)
注册小程序。接受一个`Object`参数,其指定小程序的生命周期回调等。
`App()`必须在`app.js`中调用,必须调用且只能调用一次。不然会出现无法预期的后果。
参数 Object object 如下:
| 属性 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| onLaunch | function | 否 | 监听小程序初始化 |
| onShow | function | 否 | 监听小程序启动或切前台 |
| onHide | function | 否 | 监听小程序切后台 |
| onError | function | 否 | 错误监听函数 |
| onPageNotFound | function | 否 | 页面不存在监听函数 |
| onUnhandledRejection | function | 否 | 未处理的 Promise 拒绝事件监听函数 |
| 其他 | any | 否 | 开发者可以添加任意的函数或数据变量到`Object`参数中,用`this`可以访问 |
~~~
App({
onLaunch (options) {
// Do something initial when launch.
},
onShow (options) {
// Do something when show.
},
onHide () {
// Do something when hide.
},
onError (msg) {
console.log(msg)
},
globalData: 'I am global data'
})
~~~
## 二、AppObject getApp(Object object)
获取到小程序全局唯一的`App`实例。
参数 Object object 如下:
| 属性 | 类型 | 默认值 | 必填 | 说明 |
| --- | --- | --- | --- | --- |
| allowDefault | boolean | false | 否 | 在`App`未定义时返回默认实现。当App被调用时,默认实现中定义的属性会被覆盖合并到App中。 |
~~~
// other.js
var appInstance = getApp()
console.log(appInstance.globalData) // I am global data
~~~
#### 注意
* 不要在定义于`App()`内的函数中,或调用`App`前调用`getApp()`,使用`this`就可以拿到 app 实例。
* 通过`getApp()`获取实例之后,不要私自调用生命周期函数。