如何在以下Javascript函数中将“ this”的用法注释给Closure Compiler?

我正在使用以下函数来修改Javascript数组的特定实例的行为.如何注释Closure Compiler的代码? http://code.google.com/closure/compiler/docs/js-for-compiler.html通过编译器运行代码会产生“ JSC_USED_GLOBAL_THIS”错误.

function listify(array) {
    array.toString = function() {
        return '[' + this.join(', ') + ']';
    };
    return array;
};

看起来我不能使用@extends或@constructor批注.

我不想修改全局Array原型,因为当在页面上使用其他代码时,这会产生意想不到的副作用.另外,在阅读了http://perfectionkills.com/how-ecmascript-5-still-does-not-allow-to-subclass-an-array/之后,我认为我的方法是我的用例的最佳方法.问题是我只是不知道如何将其注释给编译器

解决方法:

function listify(array) {

    /**
     * Returns the roster widget element.
     * @this {Array}
     * @return {String}
     */
    array.toString = function() {
        return '[' + this.join(', ') + ']';
    };
    return array;
};
上一篇:javascript-如何记录调用另一个函数的函数的返回值


下一篇:javascript-@override方法,Google Closure编译器