2011-07-11 18 views
1

型如果我有這樣的代碼:定義一個類爲與谷歌關閉

var x = {}; 

/** 
* @constructor 
* ??? 
*/ 
x.MyClass = function() { 

}; 

x.MyClass.prototype = { 

    hello: "Hello World", 

    /** 
    * @return {x.MyClass} 
    */ 
    y: function() { 
     console.log(this.hello); 
     return this; 
    } 

}; 

關閉告訴我,這是x.MyClass不是一個定義的類型。我怎樣才能使它成爲一個明確的類型?

+0

爲什麼你'變種X = {}'?在我看來,你所要做的就是刪除那個條目,你就不會有錯誤。 –

回答

2

您的示例適用於我,將x.MyClass更改爲x.MyClassX會導致錯誤,但此示例成功。你使用什麼版本?

http://closure-compiler.appspot.com

// ==ClosureCompiler== 
// @compilation_level ADVANCED_OPTIMIZATIONS 
// @output_file_name default.js 
// @warning_level VERBOSE 
// ==/ClosureCompiler== 

var x = {}; 

/** 
* @constructor 
* ??? 
*/ 
x.MyClass = function() { 

}; 

x.MyClass.prototype = { 

    hello: "Hello World", 
    /** 
    * @return {x.MyClass} 
    */ 
    y: function() { 
     console.log(this.hello); 
     return this; 
    } 
};