为使用构造函数创建的新对象赋值

时间:2016-12-18 08:20:18

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

我刚刚开始为Google Apps Scripts编写JS,以自动化我的部分Google表格。如果有明显的错误,我提前道歉。

我已经使用构造函数定义了一个对象,当我尝试创建相同类型的新对象时,在圆括号中给出变量值,这些值似乎就是这样做的。

以下是代码:

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("First Sorting");
var negsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Negative List");
function pastesheet (lastrow, append, pasterow) {
  this.lastrow = sheet.getLastRow();
  this.append = 1;
  this.pasterow = sheet.getRange(1, 1);
}
var neg = new pastesheet(negsheet.getLastRow(), 1, negsheet.getRange(1, 1));

从记录器中我发现使用上面的代码neg.lastrow实际上是指最后一行表“First Sorting”而不是我想要它引用的“Negative List”。 我还观察到以下调整到上面代码的最后一行做了我想要的:

ver neg = new pastesheet();
neg.lastrow = negsheet.getLastRow();
neg.append = 1;
neg.pastrow = negsheet.getRange(1,1)

但是,我真的很想知道我在第一次做错了什么?将所有内容分配到一行非常方便,我打算在很多页上进行分配。

1 个答案:

答案 0 :(得分:0)

您的构造函数引用的sheet不是参数,因此引用了" First Sorting" sheet在全球机构中定义。

你打算沿着这些方向做点什么:

function pastesheet (sheet, append) {
  this.lastrow = sheet.getLastRow();
  this.append = append;
  this.pasterow = sheet.getRange(1, 1);
}
var neg = new pastesheet(negsheet, 1);