一.定义函数的两种方式
1.函数声明
//函数声明 function fn(x) { console.log(x) }
上述abs()函数的定义如下:
- function指出这是一个函数定义;
- abs是函数的名称;
- (x)括号内列出函数的参数,多个参数以,分隔;
- { ... }之间的代码是函数体,可以包含若干语句,甚至可以没有任何语句。
2.表达式
//表达式 var fn = function (x) { console.log(x) }
两种方式大体相同,除了变量提升。
二.函数的调用方式
1.直接调用 fn()
2.通过对象调用 obj.fn()
3.通过new关键字调用 new Fn();
4.fn.call/apply(obj) 临时让fn成为obj的方法进行调用
var obj = {} function fn() { this.name = 'lili' } fn.call(obj) console.log(obj.name) //lili //总结:js的强大之处:可以让一个函数,成为任意对象的一个方法。
三.回调函数
1.回调函数的特点
(1)自己定义的(2)自己没有调用(3)函数却执行了
2.常见的回调函数
(1)事件回调函数(2)定时器内的回调函数 (3)ajax请求回调函数 (4)生命周期回调函数
//1、事件回调函数 document.onclick = function() { alert(1) } //2、定时器内的回调函数 setTimeout(function() { alert('晚了') }, 2000)
三.立即执行函数(IIFE)
来源:https://www.cnblogs.com/maizilili/p/12373019.html