in [Norway this year](https://vimeo.com/97419177) Doug Crawford announced that he no longer uses `this` in JavaScript (or did he mean ES6?). Sincerely, how would one not use `this` here:

```
var indexViewModel = {

    currentIndex: ko.observable(0),
    currentPage: ko.observable(1),
    displayItems: ko.observableArray(),

    indexSegmentsForPeople: [
        { id: "poetryinxhtml", text: "Poetry in XHTML5" },
        { id: "poetryinpdf", text: "Poetry in PDF" },
        { id: "poetryinstreams", text: "Poetry in Streams" },
        { id: "digitizedart", text: "Digitized Art" }
    ],
    indexSegmentsForTime: [
        { id: "prose", text: "Prose" },
        { id: "interviewsanddocumentary", text: "Interviews/Documentary" },
        { id: "therasxcontext", text: "the rasx() context" }
    ],
    indexVisitorLinks: [
        { url: "./rasx01.html", title: "about the kinté space" },
        { url: "./kfaqs.html", title: "kinté FAQs" },
        { url: "./khits.html", title: "kinté hits" },
        { url: "./rasx00.html", title: "the kinté space oddity" }
    ],
    items: [],
    itemsCount: ko.observable(0),
    itemsPerPage: 9,
    pageCount: ko.observable(0),

    getCurrentIndex: function () {
        return ((this.currentPage() - 1) * this.itemsPerPage);
    },
    getJSON: function (id) {
        var url = this.getIndexJsonUrl(id);
        var that = this;
        return $.getJSON(url).then(function (data) {
            that.setItems(data);
        });
    },
    getJSONforVisitors: function () {
        var that = this;
        return $.getJSON('./data/VisitorThumbs.json').then(function (data) {
            that.setItemsForVisitors(data);
        });
    },
    getIndexJsonUrl: function (id) {
        return './data/index-' + id + '.json';
    },
    getIsNewValue: function (pubDate) {
        var now = new Date();
        var test1 = ((now.getMonth() - pubDate.getMonth()) <= 2);
        var test2 = (pubDate.getFullYear() === now.getFullYear());
        return (test1 && test2);
    },
    getSlice: function () {
        return this.items.slice(this.currentIndex(),
                (this.currentIndex() + this.itemsPerPage));
    },
    isNextPageEnabled: ko.observable(true),
    isPreviousPageEnabled: ko.observable(false),
    setDisplayItems: function () {
        var that = this;
        var slice = this.getSlice();
        this.displayItems.remove(function (item) { return item; });
        _(slice).each(function (item) { that.displayItems.push(item); });
    },
    setEnabled: function () {
        this.isNextPageEnabled(this.currentPage() < this.pageCount());
        this.isPreviousPageEnabled(this.currentPage() > 1);
    },
    setItems: function (data) {
        var that = this;
        this.items = _(data.ChildDocuments)
            .sortBy(function (d) { return $.rx.dateTime.getJsonDate(d.CreateDate); }).reverse();

        _(this.items).each(function (item) {
            //Add .isNew property:
            var pubDate = $.rx.dateTime.getJsonDate(item.CreateDate);
            item.isNew = that.getIsNewValue(pubDate);
        });

        this.currentIndex(0);
        this.currentPage(1);
        this.itemsCount(this.items.length);
        this.pageCount(Math.ceil(this.itemsCount() / this.itemsPerPage));
        this.setDisplayItems();
        this.setEnabled();
    },
    setItemsForVisitors: function (data) {
        this.items = data.ChildDocuments;

        this.currentIndex(0);
        this.currentPage(1);
        this.itemsCount(this.items.length);
        this.pageCount(Math.ceil(this.itemsCount() / this.itemsPerPage));
        this.setDisplayItems();
        this.setEnabled();
    },
    setNextPage: function () {
        this.currentPage(this.currentPage() + 1);
        this.setEnabled();
        if (this.currentPage() > this.pageCount()) { this.currentPage(this.pageCount()); }
        this.currentIndex(this.getCurrentIndex());
        this.setDisplayItems();
    },
    setNextPageClickGate: function () {
        if (this.isNextPageEnabled()) { this.setNextPage(); } else { return false; }
    },
    setPreviousPage: function () {
        this.currentPage(this.currentPage() - 1);
        this.setEnabled();
        if (this.currentPage() < 1) { this.currentPage(1); }
        this.currentIndex(this.getCurrentIndex());
        this.setDisplayItems();
    },
    setPreviousPageClickGate: function () {
        if (this.isPreviousPageEnabled()) { this.setPreviousPage(); } else { return false; }
    },
    triggerAfterAdd: function (item, iterator) {
        $(window.document).trigger('afterAdd',
            ['IndexFlowTemplate', item, iterator]);
    }
};

```

???