Prototype显示源代码(Google Apps Script / Javascript)

时间:2015-04-13 18:44:37

标签: javascript arrays object google-apps-script prototype

GAS非常奇怪:如果我将一个原型添加到函数中,原型的源代码将被添加到函数的每个实例中。

function createPerson() {
var me = new Person("Ben", "Jamin");
Logger.log(me);
};

function Person(firstname, lastname) {
  this.firstname = firstname;
  this.lastname = lastname;
};

Person.prototype.member = function() {
  return "yes"
};

这是它记录到控制台的内容:

  

[15-04-13 11:47:12:351 CEST] {member =   function(){      返回"是&#34 ;;   }   ,lastname = Jamin,firstname = Ben}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

不是原型机,但您可以访问以下对象:

Logger.log("%s %s is a member? %s",me.firstname,me.lastname,me.member());

请看以下内容:

function createPerson() {
  var me = new Person("Ben", "Jamin", false);
  var you = new Person("Bint", "Jamin", true);
  Logger.log("%s %s is a member? %s",me.firstname,me.lastname,me.isMember());
  Logger.log("%s %s is a member? %s",you.firstname,you.lastname,you.isMember());
};

function Person(firstname, lastname, member) {
  this.firstname = firstname;
  this.lastname = lastname;
  this.member = member;
};

Person.prototype.isMember = function() {
  return this.member;
};

创建Person时isMember IS附加到新对象。它继承了对象引用" this"。您仍然需要将其作为评估代码的函数进行访问。有人可以纠正我,但这不是一个Apps脚本夸克,它是javascript的工作方式。