<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JavaScript基础:匿名方法的使用</title>
<!--
匿名方法的概念:
可以简单地理解成不需要写方法名称的方法
匿名方法的的写法:
1、方式一:
function (params){
}
这种方式可以把匿名方法赋值给一个变量,调用这个变量即可使用该方法(类似c#中的委托)。
2、方式二:
(function (param1, param2){
......
})(1, 2);
这种方式可以在定义匿名方法时同时传参以及调用。
-->
<script>
// 定义匿名函数,并把它赋值给一个变量plusResult
var plusResult = function (param1, param2){
var retVal1 = param1 + param2;
console.log("相加后的最终值是:" + retVal1);
};
// 调用匿名函数时,需要委托给变量plusResult,让它代替行使匿名函数的职责
plusResult(2, 5);
// 使用sort方法进行升序排序
var array1 = [2, 4, 8, 3, 5, 7, 6, 9, 1];
// 直接把array赋值给一个变量,是地址引用,改变初始array的数值,被赋值的array也会跟着改变数值
var array2 = array1;
console.log("对array1数组进行升序排序前,array2的数据是:");
console.log(array2);
// 即使array1在调用升序方法sort前,给array2赋值,array2的值也会随着array1的改变而改变
array1.sort();
console.log("对array1数组进行升序排序后,array1的数据是:");
console.log(array1);
console.log("对array1数组进行升序排序后,array2的数据是:");
console.log(array2);
// 调用匿名方法进行倒序排序
var array3 = [2, 4, 1, 3];
// 简略步骤:调用匿名函数
// array3.sort(function(param1, param2){
// return param2 - param1; // 降序效果
// });
// 详细步骤:调用匿名函数
var descSortFun = function(param1, param2){
return param2 - param1; // 降序效果
};
array3.sort(descSortFun);
// 初始的排序为: 2, 4, 1, 3
// 先比较4和2,param1 = 4, param2 = 2, return value = -2
// 再比较1和4,param1 = 1, param2 = 4, return value = 3
// 此时的排序为: 4, 2, 1, 3
// 先比较1和2,param1 = 1, param2 = 2, return value = 1
// 再比较3和2,param1 = 3, param2 = 2, return value = -1
// 再比较3和4,param1 = 3, param2 = 4, return value = 1
// 此时的排序为: 4, 3, 2, 1
console.log("对array3数组进行降序排序后,array3的数据是:");
console.log(array3);
// 调用匿名方法进行升序排序
var array4 = [2, 4, 1, 3];
// 简略步骤:调用匿名函数
// array4.sort(function(param1, param2){
// return param1 - param2; // 升序效果
// });
// 详细步骤:调用匿名函数
var ascSortFun = function(param1, param2){
return param1 - param2; // 升序效果
};
array4.sort(ascSortFun);
// 初始的排序为: 2, 4, 1, 3
// 先比较4和2,param1 = 4, param2 = 2, return value = 2
// 再比较1和4,param1 = 1, param2 = 4, return value = -3
// 先比较1和2,param1 = 1, param2 = 2, return value = -1
// 此时的排序为: 1, 2, 4, 3
// 再比较3和2,param1 = 3, param2 = 2, return value = 1
// 再比较3和4,param1 = 3, param2 = 4, return value = -1
// 此时的排序为: 1, 2, 3, 4
console.log("对array4数组进行升序排序后,array4的数据是:");
console.log(array4);
// 定义匿名方法的同时进行调用
// 方式一:需要传参
(function(param1, param2){
var retVal2 = param1 - param2;
console.log("相减后的最终值是:" + retVal2);
})(10, 2);
// 方式二:不需要传参
(function(){
console.log("听说越努力越幸运,你相信吗?");
})();
</script>
</head>
<body>
<h3>JavaScript基础:匿名方法的使用</h3>
</body>
</html>
控制台显示以下内容: