函数 this指向 改变this指向 严格模式 高阶函数 闭包 ES5(浅拷贝 深拷贝)

1.自定义函数(命名函数)

function fn(){}

2.函数表达式(匿名函数)

var fun =funciton(){}

3.利用new Function('参数1','参数2','函数体')   //执行效率差

 

this指向

普通函数 定时器函数 立即函数 this指向window

构造函数 this指向对象

对象的方法函数  绑定事件函数 this指向调用者

 

改变this指向

call() 方法

语法:fun.call(指向谁,参数1,参数2)

apply()

语法 fun.apply(指向谁,[传递的值])   //传递的值必须写在数组里面

apply的主要应用  利用apply借助于数学内置对象求最大值等

bind()

语法:fun.bind(指向谁,参数1,参数2) //不会调用原函数 返回值为原函数改变this指向后的新函数

 

严格模式 //IE10以上支持

为整个脚本开启严格模式  写在<script>标签里面写   'use strict'

为某个函数开启严格模式  写在要开启的函数里面写  'use strict'

 

严格模式规定

变量规定:

1.变量名必须声明才能使用

2.声明的变量不能删除

this指向问题:

1.严格模式下全局作用域中函数this指向undefined 不是window

2.构造函数不加new调用,this报错  实例化后this指向实例对象

3.定时器 this 指向还是window 事件,对象还是指向调用者

函数变化:

1.函数名中不能有重名的参数

2.不允许在非函数代码块中声明函数 例if{} for{}

 

高阶函数-函数作为参数传递

闭包  有权访问另一个函数作用域中变量的函数

一个作用域可以访问另一个函数的局部变量

主要作用:延伸了变量的作用范围

 

递归函数自己调用自己 类似于for循环  必须有退出条件 return

 

浅拷贝

浅拷贝只拷贝一层,更深层次对象级别的只拷贝引用 对原来的数据会有影响

Object.assign(要拷贝的文件,要拷贝谁)

 

深拷贝

深拷贝拷贝多层 每一级别的都拷贝 对原来的数据不会有影响

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值