This commit is contained in:
Ilya Kantor 2017-02-19 01:41:36 +03:00
parent d7d25f4d8b
commit 20784e7f26
48 changed files with 302 additions and 397 deletions

View file

@ -2,7 +2,7 @@ function Accumulator(startingValue) {
this.value = startingValue;
this.read = function() {
this.value += +prompt('Сколько добавлять будем?', 0);
this.value += +prompt('How much to add?', 0);
};
}
}

View file

@ -1,8 +1,4 @@
describe("Accumulator(1)", function() {
var accumulator;
before(function() {
accumulator = new Accumulator(1);
});
describe("Accumulator", function() {
beforeEach(function() {
sinon.stub(window, "prompt")
@ -12,26 +8,23 @@ describe("Accumulator(1)", function() {
prompt.restore();
});
it("начальное значение 1", function() {
it("initial value is the argument of the constructor", function() {
let accumulator = new Accumulator(1);
assert.equal(accumulator.value, 1);
});
it("после ввода 0 значение 1", function() {
it("after reading 0, the value is 1", function() {
let accumulator = new Accumulator(1);
prompt.returns("0");
accumulator.read();
assert.equal(accumulator.value, 1);
});
it("после ввода 1 значение 2", function() {
it("after reading 1, the value is 2", function() {
let accumulator = new Accumulator(1);
prompt.returns("1");
accumulator.read();
assert.equal(accumulator.value, 2);
});
it("после ввода 2 значение 4", function() {
prompt.returns("2");
accumulator.read();
assert.equal(accumulator.value, 4);
});
});
});

View file

@ -5,14 +5,13 @@ function Accumulator(startingValue) {
this.value = startingValue;
this.read = function() {
this.value += +prompt('Сколько добавлять будем?', 0);
this.value += +prompt('How much to add?', 0);
};
}
var accumulator = new Accumulator(1);
let accumulator = new Accumulator(1);
accumulator.read();
accumulator.read();
alert( accumulator.value );
alert(accumulator.value);
```

View file

@ -2,26 +2,24 @@ importance: 5
---
# Создать Accumulator при помощи конструктора
# Create new Accumulator
Напишите *функцию-конструктор* `Accumulator(startingValue)`.
Объекты, которые она создает, должны хранить текущую сумму и прибавлять к ней то, что вводит посетитель.
Create a constructor function `Accumulator(startingValue)`.
Более формально, объект должен:
Object that it creates should:
- Хранить текущее значение в своём свойстве `value`. Начальное значение свойства `value` ставится конструктором равным `startingValue`.
- Метод `read()` вызывает `prompt`, принимает число и прибавляет его к свойству `value`.
- Store the "current value" in the property `value`. The starting value is set to the argument of the constructor `startingValue`.
- The `read()` method should use `prompt` to read a new number and add it to `value`.
Таким образом, свойство `value` является текущей суммой всего, что ввел посетитель при вызовах метода `read()`, с учетом начального значения `startingValue`.
In other words, the `value` property is the sum of all user-entered values with the initial value `startingValue`.
Ниже вы можете посмотреть работу кода:
Here's the demo of the code:
```js
var accumulator = new Accumulator(1); // начальное значение 1
accumulator.read(); // прибавит ввод prompt к текущему значению
accumulator.read(); // прибавит ввод prompt к текущему значению
alert( accumulator.value ); // выведет текущее значение
let accumulator = new Accumulator(1); // initial value 1
accumulator.read(); // adds the user-entered value
accumulator.read(); // adds the user-entered value
alert(accumulator.value); // shows the sum of these values
```
[demo]