一、什么是函数
具有实现特定功能的n条语句的封装体
只有函数是可以执行的,其他类型的数据不能执行
二、为什么要用函数
提高代码复用
便于阅读交流
三、如何定义函数
1、函数声明
function myFunction(a, b) {
return a * b
}
2、表达式
var x = function (a, b) {return a * b}
四、如何调用(执行)函数
1、text() 直接调用
function myFunction(a, b) {
return a * b
}
myFunction(10, 2); // myFunction(10, 2) 返回 20
2、obj.text() 通过对象调用
var myObject = {
firstName:"John",
fullName: function () {
return this.firstName + " " + this.lastName
}
}
myObject.fullName() // 返回 "John Doe"
3、new text() new调用,使用构造函数调用函数
// 构造函数:
function myFunction(arg1, arg2) {
this.firstName = arg1;
this.lastName = arg2;
}
// This creates a new object
var x = new myFunction("John","Doe");
x.firstName; // 返回 "John"
// 如果函数调用前使用了 new 关键字, 则是调用了构造函数。
// 这看起来就像创建了新的函数,但实际上 JavaScript 函数是重新创建的对象
4、text.call/apply(obj) 临时让text成为obj的方法进行调用
// 在 JavaScript 中, 函数是对象。JavaScript 函数有它的属性和方法。
// call() 和 apply() 是预定义的函数方法。 两个方法可用于调用函数,两个方法的第一个参数必须是对象本身。
function myFunction(a, b) {
return a * b
}
myObject = myFunction.call(myObject, 10, 2) // 返回 20
function myFunction(a, b) {
return a * b
}
myArray = [10, 2]
myObject = myFunction.apply(myObject, myArray); // 返回 20
// 两个方法都使用了对象本身作为第一个参数。 两者的区别在于第二个参数: apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开始)。
五、补充:回调函数
1、什么函数才是回调函数
* 你定义的
* 你没有调用
* 但最终执行了
2、常见的回调函数
* dom时间回调函数
* 定时器回调函数
* ajax请求的回调函数
* 生命周期回调函数