Prototype显示源代码(谷歌应用程序脚本/Javascript)
GAS非常奇怪:如果我将原型添加到函数中,那么原型的源代码将添加到函数的每个实例中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
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”。它将返回对函数的引用,而不是对计算代码的引用。