函数

一.定义函数的两种方式

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)-- 也叫做:函数自调用

1.立即执行函数的特点

(1)没有函数名(2)没有调用函数 (3)该函数却执行了

2.立即执行函数的作用

(1)隐藏内部实现(2)不污染外部(全局)命名空间(3)用这种方式来编码js模块

;(function() {
	console.log(1)
})()
posted @ 2020-02-27 16:58  麦子同学  阅读(98)  评论(0编辑  收藏  举报