📅  最后修改于: 2020-10-26 05:44:45             🧑  作者: Mango
函数是可重用的代码块,可以在程序中的任何位置调用。这样就无需一次又一次编写相同的代码。它可以帮助程序员编写模块化代码。
函数使程序员可以将一个大型程序划分为许多小的和可管理的函数。
通常,使用JavaScript,我们可以定义两种类型的函数-命名函数,带有函数名body的常规函数和Function expressions 。使用函数表达式,我们可以将函数分配给变量。
//named function
function sayHello(){
return("Hello there");
}
//function expressions
var message = function sayHello(){
return("Hello there");
}
与JavaScript相比,CoffeeScript中的函数语法更简单。在CoffeeScript中,我们仅定义函数表达式。
在CoffeeScript中消除了函数关键字。要在此处定义函数,我们必须使用细箭头( -> )。
在幕后,CoffeeScript编译器将箭头转换为JavaScript中的函数定义,如下所示。
(function() {});
在CoffeeScript中不是必须使用return关键字。在CoffeeScript中每个函数自动返回在函数的最后一条语句。
如果要返回到调用函数或在到达函数结尾之前返回值,则可以使用return关键字。
除了内联函数(单行函数),我们还可以在CoffeeScript中定义多行函数。由于消除了花括号,因此可以通过保持适当的缩进来实现。
以下是在CoffeeScript中定义函数的语法。
function_name = -> function_body
下面给出的是CoffeeScript中的函数示例。在这里,我们创建了一个名为greet的函数。此函数自动返回其中的语句。将其保存在名称为function_example.coffee的文件中
greet = -> "This is an example of a function"
通过在命令提示符下执行以下命令来对其进行编译。
c:\>coffee -c function_example.coffee
编译时,它将生成以下JavaScript代码。在这里,您可以观察到CoffeeScript编译器自动在名为greet()的函数返回了字符串值。
// Generated by CoffeeScript 1.10.0
(function() {
var greet;
greet = function() {
return "This is an example of a function";
};
}).call(this);
我们还可以通过保持缩进而不是花括号来定义具有多行的函数。但是我们必须与在整个函数的一行缩进一致。
greet = ->
console.log "Hello how are you"
编译时,上面的CoffeeScript为您提供以下JavaScript代码。 CoffeeScript编译器获取使用缩进分隔并放在花括号内的函数的主体。
// Generated by CoffeeScript 1.10.0
(function() {
var greet;
greet = function() {
return console.log("Hello how are you");
};
}).call(this);
我们还可以使用括号在函数指定参数,如下所示。
add =(a,b) ->
c=a+b
console.log "Sum of the two numbers is: "+c
在编译上面的CoffeeScript文件时,它将生成以下JavaScript。
// Generated by CoffeeScript 1.10.0
(function() {
var add;
add = function(a, b) {
var c;
c = a + b;
return console.log("Sum of the two numbers is: " + c);
};
}).call(this);
定义函数,我们需要调用该函数。您可以简单地通过在函数名称后放置括号来调用函数,如以下示例所示。
add = ->
a=20;b=30
c=a+b
console.log "Sum of the two numbers is: "+c
add()
编译时,上面的示例为您提供了以下JavaScript
// Generated by CoffeeScript 1.10.0
(function() {
var add;
add = function() {
var a, b, c;
a = 20;
b = 30;
c = a + b;
return console.log("Sum of the two numbers is: " + c);
};
add();
}).call(this);
执行上面的CoffeeScript代码后,它将生成以下输出。
Sum of the two numbers is: 50
同样,我们可以通过将参数传递给函数来调用函数,如下所示。
my_function argument_1,argument_2
or
my_function (argument_1,argument_2)
注–在通过向函数传递参数来调用函数时,括号的使用是可选的。
在下面的示例中,我们创建了一个名为add()的函数,该函数接受两个参数,并已将其调用。
add =(a,b) ->
c=a+b
console.log "Sum of the two numbers is: "+c
add 10,20
编译时,上面的示例为您提供了以下JavaScript。
// Generated by CoffeeScript 1.10.0
(function() {
var add;
add = function(a, b) {
var c;
c = a + b;
return console.log("Sum of the two numbers is: " + c);
};
add(10, 20);
}).call(this);
执行时,上面的CoffeeScript代码将生成以下输出。
Sum of the two numbers is: 30
CoffeeScript也支持默认参数。我们可以将默认值分配给函数的参数,如以下示例所示。
add =(a = 1, b = 2) ->
c=a+b
console.log "Sum of the two numbers is: "+c
add 10,20
#Calling the function with default arguments
add()
编译时,上述CoffeeScript会生成以下JavaScript文件。
// Generated by CoffeeScript 1.10.0
(function() {
var add;
add = function(a, b) {
var c;
if (a == null) {
a = 1;
}
if (b == null) {
b = 2;
}
c = a + b;
return console.log("Sum of the two numbers is: " + c);
};
add(10, 20);
add()
}).call(this);
执行上面的CoffeeScript代码后,它将生成以下输出。
Sum of the two numbers is: 30
Sum of the two numbers is: 3