Як реалізувати ланцюжок функцій
Потрібно вирішити тестове завдання, не підкажіть як зробити?
Уявіть, що ми маємо квадратне поле-сітка, яким ходить бродяга. Напишіть об'єкт «Бродяга», що містить його координати та чотири методи, що реалізують крок бродяги вгору, вниз, праворуч і ліворуч. Як реалізувати в такому об'єкті ланцюжок виду:
У вас є хеш-мепа з функціями, а не об'єкт. Тобто вам потрібно з функції повертати екземпляр вашого хеш-мепа або стежити за тим, щоб контекст виклику зберігався Але краще так: http://learn.javascript.ru/object-methods#функція-.
Так само можна відDRY-ити код:
Так також вийшло. Дякую за відповідь, і підказку де шукати) Треба просто повертати об'єкт)
var Human = constructor: function(x, y, step) this.x = x; this.y = y; this.step = step; return this; >,
goUp : function() this.y + this.step; return this; >,
goDown : function() this.y - this.step; return this; >,
goLeft : function() this.x - this.step; return this; >,
goRight : function() this.x + this.step; return this; > >
var vagabond = Object.create(Human).constructor(2,2,2); console.log(vagabond.goUp().goLeft().goDown().goDown().goRight());
@EarthFM ось як ви думаєте, якщо вам 2 особи написали варіанти з використанням однієї функції для пересування, це щось означає?))