JavaScript 单例和 IntelliJ Idea
JavaScript Singleton and IntelliJ Idea
我在使用 IntelliJ Idea 的代码完成和语法检查以及 JavaScript 时遇到问题。
我有以下(简化的)单例对象代码:
var MySingleton = new function() {
var self = this;
self.prop = "hello world";
self.printHello = function() {
console.log(self.prop);
};
};
MySingleton.printHello();
问题是,IntelliJ 在最后一行抱怨 Unresolved function or method printHello()
。当从 MySingleton.
自动完成时,它也不会建议 printHello
。不过代码本身工作正常。
我想我必须以不同的风格注释或重写我的代码。但是怎么办?
我正在使用工厂在 Javascript 中获取 Singeltons。
var factory = function(){
this.singelton = null;
/**
* @return MySingleton
*/
function singelton(){
if(this.singelton==null){
this.singelton = new MySingelton();
}
return this.singleton;
}
}
var instance_of_my_singleton = factory.singelton();
看来模块模式和我想做的很接近,并且得到了Idea代码索引的良好支持:
var MySingleton = (function () {
var self = this;
var prop = "hello world";
function printHello () {
console.log(self.prop);
};
// export public functions
return {
printHello: printHello
};
})();
MySingleton.printHello();
我在使用 IntelliJ Idea 的代码完成和语法检查以及 JavaScript 时遇到问题。
我有以下(简化的)单例对象代码:
var MySingleton = new function() {
var self = this;
self.prop = "hello world";
self.printHello = function() {
console.log(self.prop);
};
};
MySingleton.printHello();
问题是,IntelliJ 在最后一行抱怨 Unresolved function or method printHello()
。当从 MySingleton.
自动完成时,它也不会建议 printHello
。不过代码本身工作正常。
我想我必须以不同的风格注释或重写我的代码。但是怎么办?
我正在使用工厂在 Javascript 中获取 Singeltons。
var factory = function(){
this.singelton = null;
/**
* @return MySingleton
*/
function singelton(){
if(this.singelton==null){
this.singelton = new MySingelton();
}
return this.singleton;
}
}
var instance_of_my_singleton = factory.singelton();
看来模块模式和我想做的很接近,并且得到了Idea代码索引的良好支持:
var MySingleton = (function () {
var self = this;
var prop = "hello world";
function printHello () {
console.log(self.prop);
};
// export public functions
return {
printHello: printHello
};
})();
MySingleton.printHello();