为什么在老师3-9这里要使用slice()方法呢?

来源:3-8 内容组织类-H5(addPage方法)

QuaciXie

2016-08-04

//在6分20秒左右
var page = this.page.slice(-1)[0]

我知道使用slice获得的是一个从下标开始截断的数组,为什么要这样?

写回答

2回答

Lyn

2016-08-08

this.page 是一个数组

    this.addPage = function( name , text ){
        var page = $('<div class="h5_page section">');

        if( name != undefined ){
            page.addClass('h5_page_'+name);
        }
        if( text != undefined ){
            page.text(text);
        }
        this.el.append(page);
        this.page.push( page ); // <<---- 在这里定义的
        if( typeof this.whenAddPage === 'function' ){
            this.whenAddPage();
        }
        return this;
    }

【当前】 page 要新增一个组件的话,【当前】我们是默认认为最后一页就是【当前页】。

  this.addComponent = function(name, cfg){
        var cfg = cfg || {};
        cfg = $.extend({
             type : 'base'
         },cfg);
        var component;  //  定义一个变量,存储 组件元素
        var page = this.page.slice(-1)[0]; //<----- 这里获得最后一页

实际上。等价于

this.page.slice(-1)[0] === this.page[ this.page.length-1 ]


2
0

QuaciXie

提问者

2016-08-13

我明白了,我是忘记了负数指的是从最后一项往前截断,所以说这里指的就是最后一项,也就是最新添加的页面,谢谢老师的回答

0
0

Web App用组件方式开发全站

用HTML5/CSS3/JS流行技术,实现移动端可视化数据报告

3164 学习 · 516 问题

查看课程