var numbers = [1, 2, 3]; var result1 = document.getElementById('result1'); var result2 = document.getElementById('result2'); var result3 = document.getElementById('result3'); document.getElementById('inputId').addEventListener('keydown', function(e) { var code = (e.keyCode ? e.keyCode : e.which); if(code == 13) { //Enter keycode // this aqui é a referência ao elemento input número var that = this; debugger; var numbers1 = numbers.map(function(el) { // this é undefined na assinatura da função map //por isso acaba assumindo o objeto global window return this.value * el; }); var numbers2 = numbers.map(function(el) { // that é uma referência ao elemento input número return that.value * el; }); var numbers3 = numbers.map(function(el) { // this agora foi especificado como parâmetro de map return this.value * el; }, this); result1.value = numbers1; result2.value = numbers2; result3.value = numbers3; } });
<div class="input-group"> <span class="input-group-addon" id="basic-addon1">Número:</span> <input id = "inputId" type="text" class="form-control" placeholder="Digite um número e aperte enter" aria-describedby="basic-addon1"> </div> <div class="input-group"> <span class="input-group-addon">Resultado this:</span> <input id = "result1" type="text" class="form-control"> </div> <div class="input-group"> <span class="input-group-addon">Resultado that:</span> <input id = "result2" type="text" class="form-control"> </div> <div class="input-group"> <span class="input-group-addon">Resultado this definido:</span> <input id = "result3" type="text" class="form-control"> </div>