Странная структура? - PullRequest
       4

Странная структура?

2 голосов
/ 06 октября 2011

Что означает эта строка кода js:

        ('selectionchange',function(sm, rs) {
            if (rs.length) {
                var detailPanel = Ext.getCmp('detailPanel');
                bookTpl.overwrite(detailPanel.body, rs[0].data);
            }
        })

это часть ссылки ниже: http://dev.sencha.com/deploy/ext-4.0.2a/examples/grid/binding-with-classes.js


Обновление: Я удалил эти строки и код работает без всякой разницы! Это ошибка кодирования Спасибо всем

Ответы [ 2 ]

5 голосов
/ 06 октября 2011

Я выйду на конечность и назову это ошибкой редактирования.Вот немного больше контекста:

    initEvents: function() {
        // call the superclass's initEvents implementation
        this.callParent();

        // now add application specific events
        // notice we use the selectionmodel's rowselect event rather
        // than a click event from the grid to provide key navigation
        // as well as mouse navigation
        var bookGridSm = this.getComponent('gridPanel').getSelectionModel();
        ('selectionchange', function(sm, rs) {
        if (rs.length) {
            var detailPanel = Ext.getCmp('detailPanel');
            bookTpl.overwrite(detailPanel.body, rs[0].data);
        }
    })
        bookGridSm.on('selectionchange', this.onRowSelect, this);
    },

Это единственное упоминание bookTpl во всем файле.Кто-то скопировал то, что кажется связыванием события, в свой буфер вставки и случайно вставил его в этот файл, или он специально вставил его, чтобы проверить синтаксис вызова bookGridSm.on, и забыл убрать после себя.

Ищите список ошибок для примеров.

3 голосов
/ 06 октября 2011

Кусок кода сам по себе ничего не делает, это просто мертвый код, парентетизированное выражение, использующее оператор запятой.

Оператор запятой будет оценивать первое выражение 'selectionchange', а затем выражение функции, но фактически без эффекта, движок Javascript, который выполняет оптимизацию, может даже не оценивать эти два выражения.

Похоже на вызов функции (возможно, для метода bookGridSm.on, чтобы связать обработчик событий, поскольку этот объект является единственным в области действия функции), но каким-то образом они удалили ссылку на функцию где звоню.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...