我正在尝试在脚本中扩展类Sheet,并且在尝试执行以下操作时我得到Sheet未定义:
Sheet.prototype.moveColumn = function(SourceIndex, DestinationIndex){
var source = this.getRange(1, SourceIndex, ss.getLastRow(), 1).getValues()
var move = SourceIndex-DestinationIndex>0 ? sheet.getRange(1, DestinationIndex, ss.getLastRow(), SourceIndex-DestinationIndex).getValues() : sheet.getRange(1, SourceIndex, ss.getLastRow(), DestinationIndex-SourceIndex).getValues();
sheet.getRange(1, DestinationIndex, source.length, 1).setValues(source);
SourceIndex-DestinationIndex>0 ? sheet.getRange(1, DestinationIndex+1, move.length, move[0].length).setValues(move) : sheet.getRange(1, SourceIndex, move.length, move[0].length);
return this
}
答案 0 :(得分:3)
您无法扩展Google类的原型。您可以在问题跟踪器Issue 708
上找到有关此问题的评论答案 1 :(得分:3)
到目前为止,只有Google,而不是其用户,可以执行此操作,具体而言,在GAS(Google Apps Script)中,可以扩展{不是本机JavaScript的类,这是Google的类},所以可以做一些事情'Sheet .prototype.MyMethod = function(..){..}',其中Google的这些类在每个{功能组件下的'Classes'下定义,{{3中的第一个'Calendar'} }}
__proto__
(SpreadsheetApp.getActiveSpreadsheet()。getActiveSheet())
.MyMethod = ..'得'TypeError:无法设置属性" MyMethod" of null to"(class)@ b73c746"。'