通常我们会在app.js里面设置一些全局变量或是方法,设置完毕后,可以在各个页面对其进行赋值或是调用。
今天来看一下怎么去调用这些
首先是初始化
//app.js
App({
/**
* 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
*/
onLaunch: function () {
},
/**
* 当小程序启动,或从后台进入前台显示,会触发 onShow
*/
onShow: function (options) {
},
/**
* 当小程序从前台进入后台,会触发 onHide
*/
onHide: function () {
},
/**
* 当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息
*/
onError: function (msg) {
},
globalData: {
a: ,
b:
},
/**
* 缓存
*/
fun: function () {
/*test fun*/
},
调用:
首先在每个page.js中初始化一个app
var app = getApp();
然后后面可以直接这样使用
console.log(app.globalData.a)
app.onLaunch: function ()
赋值:
app.globalData.a = 3
最后说明一下 var 和 let 的区别,两者都可以声明变量,但是区别在于,通过var定义的变量,作用域是整个封闭函数,是全域的 。通过let定义的变量,作用域是在块级或是子块中。
变量提升现象:浏览器在运行代码之前会进行预解析,首先解析函数声明,定义变量,解析完之后再对函数、变量进行运行、赋值等。
- 不论var声明的变量处于当前作用域的第几行,都会提升到作用域的头部。
- var 声明的变量会被提升到作用域的顶部并初始化为undefined,而let声明的变量在作用域的顶部未被初始化
网友评论