Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Prototype显示源代码(谷歌应用程序脚本/Javascript)_Javascript_Arrays_Object_Google Apps Script_Prototype - Fatal编程技术网

Prototype显示源代码(谷歌应用程序脚本/Javascript)

Prototype显示源代码(谷歌应用程序脚本/Javascript),javascript,arrays,object,google-apps-script,prototype,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

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委员会成员]= 函数(){ 返回“是”; } ,lastname=Jamin,firstname=Ben}


我做错了什么?

不是一个原型,但您可以访问您的对象,如:

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;
};

创建人员时,isMember将附着到新对象。它继承了对象引用“this”。您仍然需要将其作为函数来访问以评估代码。有人可能会纠正我,但这不是应用程序脚本quark,而是javascript的工作原理。

是的。在客户端javascript中使用原型也是如此。函数只是对象的另一个属性。这是普通的javascript。谢谢你的回答,可能有用。我的问题是整个代码都保存在实例中。也许这只是外表,但它看起来不像是应该这样。这就是它的工作原理。即使在普通javascript中,如果您使用console.log“me”。它将返回对函数的引用,而不是对计算代码的引用。