首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在对象中创建方法?

如何在对象中创建方法?
EN

Stack Overflow用户
提问于 2019-02-10 18:28:12
回答 3查看 80关注 0票数 0

我需要帮助做家庭作业。我不知道如何像他想要的那样在对象内部创建一个方法:

创建一个猴子对象,它具有以下属性:名称、物种、foodsEaten。 以及下列方法: eatSomething(thingAsString) 介绍:制作一个介绍自己的字符串,包括它的名称、种类和所吃的东西。 -Create 3只猴子共3只。确保所有3只猴子都定义了所有属性集和方法。

我已经用它的属性创建了猴子对象:

代码语言:javascript
复制
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);
EN

回答 3

Stack Overflow用户

发布于 2019-02-10 18:35:03

通常这样做的方法是在Monkey原型上添加一个函数。这将允许所有实例共享相同的功能。在函数中,您可以使用this引用实例(假设您从实例(如monkey01.eatsomething())调用它)。

在这里,我们使foodsEaten成为一个数组,这样您就可以跟踪多个数组。然后,该方法只需插入this.foodsEaten

代码语言:javascript
复制
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)

对于其他方法,只需做更多的同样的。

票数 2
EN

Stack Overflow用户

发布于 2019-02-10 18:33:00

您可以像分配变量一样将公共方法附加到JS函数。

代码语言:javascript
复制
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');

票数 0
EN

Stack Overflow用户

发布于 2019-02-10 18:36:32

这是一个函数,不是一个对象。但假设这是您想要的,您可以使用下面的代码。

代码语言:javascript
复制
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();

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54619629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档