как я могу сделать методы внутри объекта - PullRequest
0 голосов
/ 10 февраля 2019

Мне нужна помощь с домашним заданием.Я не знаю, как сделать метод внутри объекта так, как он хочет:

создать объект обезьяны, который имеет следующие свойства: имя, вид, foodsEaten.

И следующие методы:

eatSomething (thingAsString)

вводит: производит строку, представляющую себя, включая ее название, вид и то, что она съела.

-Создание 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);

Ответы [ 3 ]

0 голосов
/ 10 февраля 2019

Обычно вы делаете это, добавляя функцию к прототипу 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)

Для других методов просто сделайте то же самое.

0 голосов
/ 10 февраля 2019

Это функция, а не объект.Но, предполагая, что это то, что вы хотели, вы можете использовать код ниже.

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 голосов
/ 10 февраля 2019

Вы можете присоединять открытые методы к функциям 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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...