用另一个函数JS改变构造函数的值

时间:2016-12-13 18:11:53

标签: javascript

我正在处理以下任务,无法找到解决方案。我有构造函数(Tree)和使用它创建的对象(theTree)。现在我想添加一个新函数(alter),它将改变构造函数的问候值(所有用它创建的新对象)以及现有对象的问候值。说实话,我不知道如何在该函数中找到构造函数的属性。如果你能看看并建议从哪里开始,我将不胜感激。这是我到目前为止所得到的:

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

2 个答案:

答案 0 :(得分:0)

greeting放在原型上。从构造函数中删除this.greeting =,并将alter的正文更改为constructor.prototype.greeting = greeting;

但是,这不会更改已直接设置它的实例的greeting值。没有人知道创建了什么实例,除非你以某种方式自己跟踪它们。

答案 1 :(得分:0)

var alter = function(tmpObject,greeting){
 tmpObject.greeting = greeting;
 console.log(tmpObject.greeting);

}

要改变函数,请传递构造函数和问候消息。它会改变。