我正在使用以下函数来修改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;
};