Day15笔记
一、自调用函数
语法:
// 直接获取返回值。
(function() {} ())
// 先计算前面括号的值,再执行返回值,返回的是函数。
(function() {}) ()
二、this关键字
- 事件处理函数中this => 事件源
- 对象的方法函数中this => 对象本身obj
- 定时器匿名函数中this => window
- 全局函数中this => window
- 自调用函数中this => window
- 箭头函数中没有this
改变this的三种方式
-
call
// 添加在函数调用语句。 // obj => 当作this传入函数中。 fn.call(obj,实参)
-
apply
// 添加在函数调用语句。 // obj => 当作this传入函数中。 // [实参1,实参2] => 数组参数。 fn.apply(obj,[实参1,实参2])
-
bind
// 将原函数调用语句添加bind及obj对象,再赋值给一个新函数。 // 再使用新函数调用。 // obj => 当作this传入函数中。 var newFn = fn.bind(obj) newFn(实参)
三、ES6新特性
let关键字
- 使用let重复声明同一个变量时,会报错。
- 使用let声明的变量,必须先声明,再使用否则会报错(变量不会提升)。
- 使用let声明变量,可以不赋初始值。
- let声明的变量是块作用域。
const关键字
- 用来定义常量
- 不能重复声明
四、箭头函数
// 赋值式声明函数
var fn = function(){}
// 箭头函数(只有赋值式)
var fn = () => {}
- 箭头函数没有this。
- 当只有1个参数时,可以不写((),其他情况必须写。
- 当只有一行代码时,可以不写{},并且自动return。