按照here中概述的闭包编译器说明,我有
/**
* 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;
^^^^^^^^
很明显我错过了一些东西,但是我不知道是什么。为什么要警告?我如何摆脱它?
答案 0 :(得分:0)
在您的示例中,您正在myMethod
的实例上定义myModel
属性。
(new MyModel()).myMethod; // this exists
MyModel.myMethod; // this does not exist
要导出实例方法,请使用prototype
进行访问。
myModel.prototype['myMethod'] = myModel.prototype.myMethod;