|
Модераторы: Sardar, Aliance |
|
Alexanderrr9 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 26.10.2019 Репутация: нет Всего: нет |
function Animal(name) {
var foodAmount = 50; function formatFoodAmount() { return foodAmount + ' гр.'; } this.dailyNorm = function(amount) { if (!arguments.length) return formatFoodAmount(); if (amount < 50 || amount > 500) { return 'Недопустимое количество корма.'; } foodAmount = amount; }; this.name = name; this.feed = function() { console.log('Насыпаем в миску ' + this.dailyNorm() + ' корма.'); console.log('Кот доволен ^_^'); }; } function Cat(name) { Animal.apply(this, arguments); var animalFeed = this.feed; this.feed = function() { animalFeed(); //this.run(); } } var barsik = new Cat('Барсик'); console.log(barsik.name); console.log(barsik.dailyNorm(250)); console.log(barsik.feed()); console.log(barsik.dailyNorm(600)); console.log(barsik.feed()); console.log(barsik.dailyNorm(250)); console.log(barsik.feed()); barsik = null; Добрый день. Что то надо поменять в родительском классе, не могу понять что. Если кто знает буду признателен за помощь. |
|||
|
||||
Alexanderrr9 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 26.10.2019 Репутация: нет Всего: нет |
Дело в том когда код доходит до animalFeed() далее переходит в feed и там в this.dalyNorm происходит ошибка
|
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
Где сказано, что Cat - это Animal ? В JS это делается явным присваиванием цепочки наследования.
Потом непонятно что-же должен возвращать метод dailyNorm, в случае, если все условия сработали и новое значение было применено. сейчас в этом случае возвращается null со всеми вытекающими последствиями Ну и функции и наследование в JS это довольно странные вещи... При вызове функций нужно явно указывать от какого объекта они вызываются, иначе внутри функции можно получить не ожидаемое значение this, а какой то непонятный window вместо него... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
Alexanderrr9 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 26.10.2019 Репутация: нет Всего: нет |
Проблема была решена с помощью создания переменной show = this в родителе и присвоением show.dailyNorm.
|
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
И тестирование проходит ? Попробуй завести десяток котов с разными нормами питания...
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |