Сумма в конструкторе

#javascript #constructor #sum

Вопрос:

Я пытаюсь решить эту проблему. Когда пользователь вводит два числа с помощью ** подсказки **, после того, как на дисплее отобразится конечный результат. Простой конструктор, но этот код принимает только первое значение, я не могу заставить его принять и второе, чтобы суммировать оба значения

 function Num (firstNum) {
    this.firstNum = firstNum;
    this.read = function() {
        this.value = this.x   this.firstNum; {
            return this.x =  prompt('a');
        }
    };
}
let num = new Num(10); 
num.read(); 
num.read(); 

alert(num.value); 
 

Комментарии:

1. Что вы на самом деле пытаетесь сделать? Что такое this.x ? Что такое num.value ?

2. Все здесь пытаются решить проблему. 🙂 Пожалуйста , пересмотрите название своего поста, чтобы задать четкий, конкретный вопрос. Затем пересмотрите свой пост, чтобы добавить подробности в комментарий h0r53.

3. @h0r53 все, что я хочу. выполните «propmt» — дважды и так, чтобы функция запоминала номера значения запроса и отображала его как предупреждение. Я попытался сделать это с помощью «this.value = this.x this.firstNum;», но оказалось, что это. не могу работать с » =»

Ответ №1:

Как предположили другие комментаторы, вам, вероятно, следует отредактировать свой вопрос, чтобы сделать его более ясным. Но если бы мне пришлось сделать предположение, вот мой ответ:

Найдите «функции карри» или «частичное применение». В принципе, вы можете использовать замыкания для сохранения значения из первого запроса до тех пор, пока не получите значение из второго.

     const sumTwo = firstNum => secondNum => firstNum   secondNum;

    // then when you want to use it;
    const plusTen = sumTwo(prompt(10);

    const resultA = plusTen(prompt(2)); // this will be 12
    const resultB = plusTen(prompt(5)); // this will be 15
 

Ответ №2:

решать

 function Num (firstNum) {
    this.value = firstNum;
    this.read = function() {
        this.value  =  prompt('a?', 0);
    };
}

let num = new Num(10); 
num.read(); 
num.read(); 

alert(num.value);