尝试编写Javascript对象时出现意外错误

时间:2019-01-07 21:52:14

标签: javascript object google-apps-script google-sheets-api

当我尝试从Google表格上的脚本编辑器保存此代码时,收到以下消息:“很抱歉,编译期间发生意外错误。”该代码使用方法创建一个类。

如果它没有创建方法,我不会得到错误,但是对象的要点是方法。过去,我是在另一个Sheets应用程序中执行此操作的,但即使在一个简单的示例中,我也无法使用它。

function myFunction() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();  // curr active spreadsheet
  var theSheet = ss.getActiveSheet();              // current active sheet
  var aLogger = tLogger(theSheet, 5, 1, 5);        // set up a logger

  aLogger.tLog("A test line: 1");
}

// object to do logging on a sheet
function tLogger(ourSheet, startLine, startCol, logLength) {

  // object properties:
  this.curline = startLine;
  this.sheetRef = ourSheet;
  this.theColumn = startCol;
  this.maxLog = startLine + logLength;

  ourSheet.getRange(startLine, startCol, logLength, 1).clear();  // clear old

  // including this is what causes the error:
  function this.tLog(tText) {  // log an entry on the sheet
    this.sheetRef.getRange(this.curline++, this.theColumn).setValue(tText);
    return;
  }
  return;
}

1 个答案:

答案 0 :(得分:0)

使用ES6对其重新编码,如上

class tLogger {
  constructor(ourSheet, startLine, startCol, logLength) {
    this.curline = startLine;
    this.sheetRef = ourSheet;
    this.theColumn = startCol;
    this.maxLog = startLine + logLength;
  }
}