我正在使用以下函數來修改特定的Javascript數組實例的行爲。我如何註釋Closure Compiler的代碼? http://code.google.com/closure/compiler/docs/js-for-compiler.html通過編譯器運行代碼會產生「JSC_USED_GLOBAL_THIS」錯誤。如何在以下Javascript函數中將「this」的用法註釋到Closure Compiler中?
function listify(array) {
array.toString = function() {
return '[' + this.join(', ') + ']';
};
return array;
};
它看起來不像我可以使用@extends或@constructor註釋。
我不想修改全局數組的原型,因爲當頁面上使用其他代碼時會產生意想不到的副作用。另外,在閱讀http://perfectionkills.com/how-ecmascript-5-still-does-not-allow-to-subclass-an-array/之後,我認爲我的方法對我的用例來說是最好的。問題是我只是不知道如何將它註釋到編譯器
它說在你連接的文檔中是正確的:'爲了防止編譯器警告,你必須使用@this註釋,只要它出現在函數既不是原型方法,也不是標記爲@構造函數的函數。「# – Esailija
@Esailija:好的。我不確定正確的方式來註釋它。我會用「{AT} this {Array}」? – user319862
@Esailija:如果您回覆的答案修復了包含類型定義的代碼,我會將其標記爲答案。 – user319862