Javascript 函数

由 alexbro 创建,youj 最后一次修改 2017-01-06

Javascript面向对象设计 - Javascript函数


Javascript函数实际上是对象。

内部属性由双方括号表示。

Javascript定义了几个JavaScript中对象的内部属性。

typeof 运算符为任何返回“function"对象与 [[Call]] 属性。

声明与表达式

函数声明以 function 关键字开头,并以名称继续的功能。

以下代码使用函数声明文字语法创建函数将两个数字加在一起。

function add(num1, num2) { 
   return num1 + num2; 
} 

函数表达式不需要函数后面的名称。

这些函数是匿名的,因为函数对象本身没有名称。

函数表达式通常通过变量或属性引用。

下面的代码创建一个函数表达式将两个数字加在一起。

var add = function(num1, num2) { 
   return num1 + num2; 
}; 

上面的代码为变量 add 分配了一个函数值。

赋值表达式以分号结尾。

函数声明被提升到上下文的顶部。

使用函数声明,我们可以定义一个函数在代码中使用而不生成错误。

例如:

var result = add(5, 5); 

function add(num1, num2) { 
   return num1 + num2; 
} 

JavaScript引擎将函数声明提升到顶部和实际上执行代码,就像它是这样写的:

function add(num1, num2) { 
   return num1 + num2; 
} 

var result = add(5, 5); 

注意

只要我们在使用它们之前定义函数,我们可以使用函数声明或函数表达式。

函数作为值

JavaScript函数可以用作任何其他对象。

我们可以为变量分配函数,将它们添加到对象,将它们作为参数传递给其他函数,并从函数返回它们。

我们可以使用函数在任何地方使用参考值。

考虑下面的例子:

function myMethod() { 
   console.log("Hi!"); 
} 
myMethod();        // outputs "Hi!" 

var myMethod2 = myMethod; 

myMethod2();       // outputs "Hi!" 

在这段代码中,有一个函数声明为 myMethod

然后一个名为 myMethod2 的变量创建并分配 myMethod 的值。

myMethod myMethod2 都指向同一个函数。

Javascript函数是对象。

我们可以将一个函数作为参数传递给另一个函数。


例子

以下代码显示了如何将函数作为数据传递到另一个函数。

JavaScript数组上的sort()方法接受比较函数作为可选参数。

当比较两个值时调用比较函数。

如果第一个值小于第二个值,则比较函数返回a负数。

如果第一个值大于第二个,函数返回一个正数。

如果两个值相等,函数应返回零。

对数字数组进行排序,例如:

var numbers = [ 11, 15, 18, 41, 71, 110, 21, 16 ]; 
// www.w3cschool.cn
var s = function(first, second) { 
   return first - second; 
};

numbers.sort(s); 

console.log(numbers);

numbers.sort(); 
console.log(numbers); 

上面的代码生成以下结果。

在上面的代码中,比较函数s被传递给sort()。

以上内容是否对您有帮助:

二维码
建议反馈
二维码