2016-10-18 5 views
0

Выход console.log() является значением width, когда я использую функцию getRatioValue() для умножения вставленного значения height и рассчитанного отношения. Я не могу понять, почему это происходит.Неправильное возвращаемое значение при умножении

var soFunction = function(args) { 
    this.width = args.width || 0; 
    this.height = args.height || 0; 

    this.getRatioValue = function(value) { 
     var ratio = this.width/this.height; 
     return value * ratio; 
    }; 

    console.log(this.getRatioValue(this.height)); // returns 1200 
} 

// Initialize object 
var test = new soFunction({width: 1200, height: 980}); 
+0

то, что вы хотите в качестве вывода? здесь вы умножаетесь и поднимаете высоту, чтобы она показывала вам значение ширины. –

+1

Вы разделяете ширину на высоту ... затем снова умножаете ее на высоту, чтобы вы закончили то, с чего вы начали, т. Е. Ширину. Это может помочь, если вы сможете объяснить, что вы пытаетесь сделать здесь. –

+0

Ваш код работает отлично, я получаю ширину '1200' только в консоли..посмотрите эту скрипту https://jsfiddle.net/g6msszn5/ –

ответ

0

Это простая математическая операция. Если вы напишете свою функцию на одной строке, вы получите.

value равно height, так

return this.height * this.width/this.height 

this.height «s уничтожить друг друга, и это возвращает this.width

Смежные вопросы