1、函数的概念:
函数:能够被外部程序调用的一连串语句的集合,可以定义传递参数和返回数据
注:函数需要被调用才能执行
2、函数的创建:
(1)使用函数对象来创建
语法:var 函数名 = new Function("执行语句");
var fun = new Function("console.log('这是一个函数');");
(2)使用函数声明来创建
语法:function 函数名([参数1,参数2,...]) {
执行语句
}
function fun(){
console.log("这是一个函数");
}
(3)使用函数表达式来创建
语法:var 函数名 = function([参数1,参数2,...]) {
执行语句
}
var fun = function() {
console.log("这是一个函数");
}
3、函数的调用:
// 调用无参函数
var fun = function () {
console.log("执行无参函数");
}
// 调用有参函数
var sum = function (num1, num2) {
var result = num1 + num2;
console.log("执行有参函数 result=" + result);
}
// 函数调用
fun();
sum(10, 20);
//打印结果:
执行无参函数
执行有参函数 result=30
4、函数的参数
(1)函数参数的传递都是值传递
(2)调用函数时,解析器不会检查实参的类型,可能收到非法的参数
(3)调用函数时,当实参的数量超过形参时,多余实参不会被赋值,反之,则没有对应实参的形参将是undefined
5、函数返回值:
使用return来设置函数的返回值
语法: return 想返回的结果
function sum(num1, num2) {
return num1 + num2;
}
var result = sum(10, 20);
console.log(result);
//打印结果:30
6、this对象
在调用函数时,每次都会向函数内部传递进一个隐含的参数this
this指向函数执行的上下文对象,根据函数的调用方式的不同,this会指向不同的对象
(1)以函数的形式调用时,this永远都是window
function fun(){
console.log(this)
}
fun()
//打印结果:window
(2)以方法的形式调用时,this就是调用方法的那个对象
var obj = {
name: '张三',
age: 20,
sex: '男',
say: function () {
console.log(this);
}
}
obj.say()
//打印结果:
{name: "张三", age: 20, sex: "男", say: ƒ}