Свойство myMethod никогда не определяется на myModel - PullRequest
0 голосов
/ 20 декабря 2018

Следуя инструкциям компилятора замыкания, как указано в здесь , у меня есть

/**
 * ctor
 * @constructor
*/
function myModel() {
    var self = this;

    self.myMethod= function(a,b,c) {...}
    ...
}

window['myModel'] = myModel;
myModel['myMethod'] = myModel.myMethod;

компилятор замыкания завершается с нулевыми ошибками, а скомпилированный код заканчивается фрагментом кода следующим образом:

window.myModel=b;b.myMethod=b.B;

но я получаю следующее предупреждение:

WARNING - Property myMethod never defined on myModel
myModel['myMethod'] = myModel.myMethod;
                              ^^^^^^^^

Я явно что-то пропустил, но не мог понять, что именно.Почему предупреждение?как мне от этого избавиться?

1 Ответ

0 голосов
/ 23 декабря 2018

В вашем примере вы определяете свойство myMethod для экземпляра myModel.

(new MyModel()).myMethod; // this exists
MyModel.myMethod; // this does not exist

Чтобы экспортировать метод экземпляра, используйте для доступа к нему prototype.

myModel.prototype['myMethod'] = myModel.prototype.myMethod;
...