<!DOCTYPE html>
<html>
<head>
<title>01_define.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<script type="text/javascript">
function sum(num1,num2){
console.log(num1+num2);
}
/**
*此时sum所指向的空间已经从两个参数的函数变到一个参数的函数,两个参数的函数就没有对象指向它了,
在调用的时候就只会调用一个参数的函数,
特别注意:函数的参数和调用没有关系,如果函数只有一个参数,但是却传入了两个参数,仅仅只会匹配一个参数
所以在js中不存在函数的重载,只存在覆盖 ,后面定义的会覆盖前面定义的
*/
function sum(num1){
console.log(num1+10);
}
sum(15); //25
sum(20,30); //30
//函数有如下定义方式(因为函数就是对象)
/**
如下的定义方式就相当于
function fn(num1,num2){
console.log(num1+num2);
}
所以通过下面的例子就说明了,函数就是一个对象 ,(函数的名称可以变,因为它是一个对象,所以我们可以返回一个函数,可以将函数作为一个参数传入)
*/
var fn = new Function('sum1','sum2','console.log(sum1+sum2)');
fn(12,14);
</script>
</head>
<body>
This is my HTML page. <br>
</body>
</html>