onSelectCampus(res) {
const name = res.currentTarget.dataset.cname;
var pages = getCurrentPages();
var currentPage = pages[pages.length - 1];
var prePage = pages[pages.length - 2];
app.globalData.nearCampus = name;
#### 这是其中的一部分代码,我不明白res.currentTarget.dataset.cname这一串是什么意思,最让我困惑的是分隔字母的这个“.”
var pages = getCurrentPages();
这一行代码应该是给pages定义 那后面()是干什么用的
**还想问一下“[]”这个符号在小程序是什么用法,就像三行那个
pages[pages.length - 1]
```**
res.currentTarget.dataset.cname表示获取res对象下面的currentTarget属性值,currentTarget属性值也是一个对象,它有一个属性dataset,dataset的属性
值也是一个对象,再获取里面的cname属性值,'.'表示获取对象的属性,a.b就表示获取a里面的b属性值。
而getCurrentPages()就表示函数调用,var pages = getCurrentPages();这句是赋值语句没错,但是给pages赋的是调用getCurrentPages后的返回值。
最后这个pages[pages.length - 1],也是获取属性值的,跟'.'获取唯一的区别在于,'.'获取属性值其后面跟的属性名称是确定的,即开发明确知道你要获取的
属性名称,比如var a = {abc: 'test'},a.abc;而[]获取的属性值,属性名称不固定即可动态赋值,如var a = {'1': 'a', '2': 'b'}, i = 0; console.log(a[++i]);
[]还一般用来获取数组某一项,比如var a = [1,2,3]; a[a.length - 1]就是获取数组的最后一个元素。