返回Javascript错误并返回多个

时间:2013-11-19 00:38:52

标签: javascript math return var

我很抱歉打扰这个菜鸟,但目前对这一切都是新手。但慢慢学习。 在第一行代码我得到一个返回(在这个代码中我得到20 * 2 = 40。在下一阶段我想要将返回(40)乘以20. = 800.所以在结果中它将显示40 And 800.但我只是把它放在发件箱[功能],它说。和一个消息;“看起来你没有打印出newNumber的值”。 我做错了什么?谢谢大家的帮助!

var timesTwo = function (number) {
    return number * 2;
};
timesTwo(20);

var newNumber = function (tal) {
    (timesTwo * tal);
    console.log(newNumber);
};
newNumber(20);

2 个答案:

答案 0 :(得分:1)

您需要做的是将结果分配给变量,然后在第二个函数中返回结果:

var timesTwo = function(number) {
   return number * 2;
};

var twoTimesResult = timesTwo(20); 

var newNumber = function (tal) {
  return twoTimesResult * tal;
};

var result2 = newNumber(20);

console.log(result2);

如果您想要表现出色,您也可以执行以下操作:

function multiplier(num, multiplier) {
  var by = num * multiplier;
  return function (number) {
    return number * by;
  };
}

var multiplyResult = multiplier(20, 2);

console.log(multiplyResult(20));

答案 1 :(得分:0)

我也在回答这个问题,因为我觉得这些类型的东西很有趣。

您可以采取的另一种方法是OOP方法。

从您的示例中,您的公共乘数为20,起始常数为2.

我会亲自攻击这个问题,以避免多个变量:

// Create a calc object
var Calc = (function () {

    // Constructor
    Calc = function () {

        // Initial constant
        this.current_val = 2;
    }

    // Prototype methods
    Calc.prototype = {

        // inc() method
        inc: function () {
            return this.current_val * 20;
        }
    }

    // Return object
    return Calc;
})();

// Object Instance
var obj = new Calc();

// Initial call to inc() -> 40
obj.current_val = obj.inc();
// Log
console.log(obj.current_val);
// Second call to inc() -> 800
obj.current_val = obj.inc();
// Log
console.log(obj.current_val);
// Third call to inc() -> 16000
obj.current_val = obj.inc();
// Log
console.log(obj.current_val);

I made a jsfiddle so you can see the output.