1.全局里面this默认指向window
2.在局部里,将函数作为属性值追加到一个对象,这里的this就是函数对象
3.前面有对象 this就指向谁 没有默认指向window
4.在严格模式下this指向underfined "use strict"为严格模式
5. 构造函数就是用来创建对象 创建的对象称为实例化对象
构造函数中的this指向我们创建的实例对象
6.函数默认调用方法有三种
一种通过 函数名字()
一种是要通过函数名字.apply()
一种通过 函数名字.call();
apply和call方可以改变this指向
apply方法不仅可以调用函数 也可以设置this指向
apply方法传入实参 就必须设置第二个参数
第一个参数设置this指向
第二个参数是一个数组的形式 数据传入数组中
call方法不仅可以调用函数 也可以设置this指向
call方法传入实参 就必须设置第二个参数
第一个参数设置this指向
call方法的第一个参数之后按照列表的形式传入实参 将数据依次传入
第二个参数是一个数组的形式 数据传入数组中
7.
显示绑定的三个方法 apply call bind
引出bind函数 可以改变this指向 第二个参数跟的是列表
且产生一个新的函数 这个函数称为BF
根据这个绑定的优先级 显示绑定的优先级 高于默认绑定
所有当调用foo函数时 实际让fn.bind(obj)这个 整体调用
可以让this指向obj 调用fn函数时 最后输出obj对象
8. 定时器里面this指向window
9一般高阶函数
forEach函数的第二个参数可以设置this指向
如果不设置默认指向window对象
一个函数需要另一个函数作为参数 那么这个函数称为高阶函数
10.箭头函数声明一个函数 小括号书写形参 大括号是执行的函数体;箭头函数没有this
11.
1.声明式声明一个函数
function foo() {};
2.赋值式声明一个函数
var fn = function() {};
3. 构造函数声明一个函数
var fun = new Function();
12.箭头函数:
return满足的条件的数据给了函数调用者 需要声明一个中间商 接收函数调用者
箭头函数参数有一个 小括号可以省略
箭头函数如果是执行一行代码 大括号省略 连同return
13.高阶函数map
map() 方法创建一个新数组;
这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成
map()会形成一个新的数组 映射 针对于每一项进行处理