我正在处理下面的任务,找不到解决方案。我有构造函数(Tree)和使用它创建的对象(theTree)。现在我想添加新的函数(alter),它会改变构造函数的问候语值(所有使用它创建的新对象的问候),但也会添加现有对象。说实话,我不知道如何去那个函数中的构造器的属性。如果你能看一看,并建议从哪里开始,我将不胜感激。这是我走到这一步:用另一个函数更改构造函数的值JS
function Tree(name) {
this.name = name;
this.greeting = "Hi";
}
var theTree = new Tree("Pine");
theTree.greeting = "hello";
var alter = function(constructor, greeting) {
this.greeting = greeting;
}
如果您希望所有实例共享一个值,请不要将其设置为每个实例的属性。 –
把'问候'放在原型上。从构造函数中移除'this.greeting =',并将'alter'的主体改为'constructor.prototype.greeting = greeting;'。但是,这不会更改已经直接设置的实例的“问候”值。没有人知道创建了什么样的实例,除非你以某种方式自己跟踪它们。 –
@torazaburo谢谢!这与原型完美无瑕。它还会更改在使用该函数之前创建的对象的问候值,而不是用于直接设置值但现在没问题的对象的问候值。 – Joanna