我很抱歉打扰这个菜鸟,但目前对这一切都是新手。但慢慢学习。 在第一行代码我得到一个返回(在这个代码中我得到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);
答案 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);