我需要帮助做家庭作业。我不知道如何像他想要的那样在对象内部创建一个方法:
创建一个猴子对象,它具有以下属性:名称、物种、foodsEaten。 以及下列方法: eatSomething(thingAsString) 介绍:制作一个介绍自己的字符串,包括它的名称、种类和所吃的东西。 -Create 3只猴子共3只。确保所有3只猴子都定义了所有属性集和方法。
我已经用它的属性创建了猴子对象:
function Monkey(name, species, foodsEaten) {
this.name = name;
this.species = species;
this.foodsEaten = foodsEaten;
}
let monkey01 = new Monkey(chimp, chimpanzee, honey);
let monkey02 = new Monkey(gibb, gibbon, apple);
let monkey03 = new Monkey(babo, babbon, banana);发布于 2019-02-10 18:35:03
通常这样做的方法是在Monkey原型上添加一个函数。这将允许所有实例共享相同的功能。在函数中,您可以使用this引用实例(假设您从实例(如monkey01.eatsomething())调用它)。
在这里,我们使foodsEaten成为一个数组,这样您就可以跟踪多个数组。然后,该方法只需插入this.foodsEaten
function Monkey(name, species, foodsEaten) {
this.name = name;
this.species = species;
this.foodsEaten = [...foodsEaten]; // make a copy so you don't mutate the passed in array.
}
Monkey.prototype.eatsomething = function(foodString) {
this.foodsEaten.push(foodString)
}
let monkey01 = new Monkey('chimp', 'chimpanzee', ['honey']);
monkey01.eatsomething("bananna")
// now it's eatne more food
console.log(monkey01.foodsEaten)
对于其他方法,只需做更多的同样的。
发布于 2019-02-10 18:33:00
您可以像分配变量一样将公共方法附加到JS函数。
function Monkey(name, species, foodsEaten) {
this.name = name;
this.species = species;
this.foodsEaten = foodsEaten;
this.doSomething = function (thing) {
console.log('do something with', thing);
}
}
let monkey01 = new Monkey('chimp', 'chimpanzee', 'honey');
monkey01.doSomething('banana');
发布于 2019-02-10 18:36:32
这是一个函数,不是一个对象。但假设这是您想要的,您可以使用下面的代码。
function Monkey(name, species, foodsEaten) {
this.name = name;
this.species = species;
this.foodsEaten = foodsEaten;
this.eatSomething = function() {
console.log(`I am ${name}. I am part of the ${species} species, and have eaten ${foodsEaten}`);
}
}
let monkey01 = new Monkey("chimp", "chimpanzee", "honey");
let monkey02 = new Monkey("gibb", "gibbon", "apple");
let monkey03 = new Monkey("babo", "babbon", "banana");
monkey01.eatSomething();
https://stackoverflow.com/questions/54619629
复制相似问题