有两个(页面的)js文件,不同之处是第二个文件的开头定义了两个变量,而且在data里定义了同名变量。经测试第二个文件里那两个变量的值是以开头定义为准的。这是什么原因。两个 js文件内容如下:
mypage1.js
-----------------------------
Page({
data:{
lcstr1; "abcd",
lcstr2; "1234"
},
func1: function(){},
func2: function(){}
})
mypage2.js
-----------------------------
var util = require("util.js")
const gd1 = getApp().globalData
Page({
data:{
val1; "abcd",
val1; "1234",
util: {},
gd1: {}
},
func1: function(){},
func2: function(){}
})
[END]
所以 gd1 == this.data.gd1 ??
const pn = getApp().globalData .pn;
Page({
data:{
pn: 20
},
onLoad: function(){
var pn = this.data.pn;// 这样会覆盖
}
})
我发现把变量放在 page() 的前面定义,有个好处:在js文件内的任何位置(任意层函数调用里)使用变量时不用加this.data在前面。只要不在 WXML 上使用,变量大可放在 page() 之前的位置定义。