解释JavaScript中的MUL()函数
在本教程中,我们将学习如何在JavaScript中实现MUL()函数。这个函数是一个非常小的乘法函数。基本上,我们使用嵌套函数的概念来实现MUL()函数。嵌套函数用于创建闭包和装饰器。并且我们可以使用嵌套函数来实现私有性。
有两种方法可以使用嵌套函数来实现MUL()函数:
使用命名嵌套函数
通过柯里化函数
使用命名嵌套函数
在JavaScript中,我们可以使用嵌套函数来获得乘法结果。我们需要编写n个嵌套函数来乘以n个数。
JavaScript是一种一等函数语言。这意味着JavaScript中的函数可以像任何其他变量一样对待。因此,我们在这里在外部函数的return语句中返回内部函数。
语法
用户可以按照以下语法使用命名嵌套函数实现MUL()函数。
function mul(num1){
function mul1(num2){
function mul2(num3){
return num1*num2*num3;
}; // end of mul2()
return mul2;
}; // end of mul1()
return mul1;
} // end of mul()
例如,我们将三个数num1、num2和num3相乘。`function`是JavaScript中定义函数的关键字。在这里,我们定义一个名为mul()的函数,它以num1作为参数。在mul()函数内部,我们返回函数mul1(),它在mul()函数内部定义。mul1()以num2作为参数,它返回函数mul2()。而mul2()以num3作为参数;它返回num1、num2和num3的乘积。
这样,我们可以编写n个函数来乘以n个数。
算法
步骤1 - 定义函数mul(),第一个数字num1作为参数。
步骤1.1 - 在函数mul()内部,定义函数mul1(),第二个数字num2作为参数。
步骤1.2 - 在函数mul()的return语句中,返回mul1。
步骤2 - 在函数mul1()内部,定义函数mul2(),第三个数字num3作为参数。
步骤2.1 - 在函数mul1()的return语句中,返回mul2。
步骤3 - 在函数mul2()的return语句中,返回num1、num2和num3的乘积。
示例
在下面的示例中,我们将三个数字相乘。我们还观察了只传递两个数字时的输出。
<html>
<body>
<h2> The MUL() function in JavaScript </h2>
<div id = "output"> </div>
<script>
let output = document.getElementById("output");
function mul(num1){
function mul1(num2){
function mul2(num3){
return num1*num2*num3;
}; // end of mul2()
return mul2;
}; // end of mul1()
return mul1;
} // end of mul()
output.innerHTML = "Multiplication of 2, 3 and 4 is : ";
output.innerHTML += mul(2)(3)(4) + "<br><br>";
output.innerHTML += "Multiplication of 4 and 6 is : ";
//This line returns a function
output.innerHTML += mul(4)(6) + "<br><br>";
output.innerHTML += "Multiplication of 3, 5 and 7 is: ";
//Another way of multiplication
const temp = mul(3)(5);
output.innerHTML += temp(7);
</script>
</body>
</html>
在上面的代码中,用户可以看到2、3和4通过在函数调用中将它们一起传递来相乘。当我们只传递两个数字时,它返回一个函数。然后我们在函数调用中传递3和5,但我们将结果存储在temp变量中。然后使用该temp变量传递7。所以我们得到3、5和7的乘积 = 105。
注意 - 我们不能在mul()函数外部调用mul1()或mul2()函数。
通过柯里化函数
我们可以通过柯里化函数以另一种方式编写上述逻辑。当我们不能同时向函数提供所有参数时,柯里化非常有用。不会在任何地方调用的函数可以编写为匿名函数。
语法
按照以下语法实现通过柯里化函数实现MUL()。
function mul(num1) {
return function(num2) {
return function(num3) {
return num1 * num2 * num3;
};
};
}
在这里,我们也以3个数为例,因此用户可以观察到我们可以通过编写匿名函数来实现上述逻辑的差异。最外层函数mul()具有参数num1;它返回一个具有参数num2的函数。此函数返回一个具有参数num3的函数。最内层函数返回num1、num2和num3的乘积。
相同的逻辑可以应用于更多数字。
算法
步骤1 - 定义函数mul(),num1作为参数。
步骤2 - 在函数mul()的return语句中,定义匿名函数(为了理解,我们称之为第一个匿名函数), num2作为参数。
步骤3 - 在第一个匿名函数的return语句中,定义第二个匿名函数,num3作为参数。
步骤4 - 在第二个匿名函数的return语句中,返回num1、num2和num3的乘积。
示例
在下面的示例中,我们通过柯里化函数来实现MUL()函数。
<html>
<body>
<h2> The MUL() function in JavaScript </h2>
<div id="output"> </div>
<script>
let output = document.getElementById("output");
function mul(num1) {
return function(num2) {
return function(num3) {
return num1 * num2 * num3;
};
};
}
output.innerHTML = "Multiplication of 2, 4 and 6 is: ";
output.innerHTML += mul(2)(4)(6) + "<br><br>";
output.innerHTML += "Output when we pass only 9 is: <br>";
//This line returns a function
output.innerHTML += mul(9) + "<br><br>";
output.innerHTML += "Multiplication of 2, 3 and 5 is: ";
//Another way of multiplication
const temp = mul(2)(3);
output.innerHTML += temp(5);
</script>
</body>
</html>
在上面的输出中,用户可以看到,当我们在函数调用中传递三个数字时,我们得到三个数字的乘积。当我们在函数调用中一起传递2、4和6时,我们得到48。当我们只传递9时,我们得到一个函数。然后我们在函数调用中只传递2和3并将结果存储在temp变量中。然后使用该temp变量传递5。所以我们得到2、3和5的乘积 = 30。
我们学习了使用两种不同的方法实现MUL()函数:嵌套函数和柯里化函数。
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP