5.ES6(this / 严格模式 / 深/浅拷贝):拷贝没补~~~

this关键字
严格模式
深拷贝/浅拷贝

this关键字

1.定义:函数内this指向是(调用/创建对象)时确认的,一般称为调用者

函数调用者this指向
普通函数windowwindow
定时器函数/回调函数windowwindow
DOM监听器函数/回调函数获取的DOM对象获取的DOM对象
立即执行函数windowwindow
构造函数实例对象实例对象
对象中的方法本身实例对象点方法调用实例对象

2.定义上述6中函数都可以改变this指向

函数方法是否调用函数返回值参数
call函数return值单个
apply函数return值数组
bind将原函数修改this,拷贝后的新函数,需要调用时,需要赋值后调用单个
1.call主要用途:继承,参数为单个
函数名.call(函数名中this指向新的对象名,参数1,参数2)

2.apply方法主要用途:继承,参数为数组
函数名.apply(函数名中this指向新的对象名,[数组/伪数组])
举例:Math.max.apply(Math,[     ])借助math数学内置对象,求数组最大值/最小值等

3.(最常用)bind方法主要用途:改变回调函数this指向
回调函数名.bind(函数名中this指向新的对象名,参数1,参数2)
举例:嵌套函数/回调函数,例如定时器结束后关闭xx,不用另外变量修改this即可;

严格模式

//开启严格模式
1."use strict" //script最上面/函数最上面
2.`use strict`//script最上面/函数最上面

1.支持ie10以上
2.关键字不能作为变量名:eg(class,enum,export,extends,import,super)
3.隐式全局变量会报错
4.命名变量要用delete删除会报错: delete lzy;
5.函数:同一函数不能有重复命名行参
6.块级作用域例如if,for内不允许写函数
7.this:全局作用域this指向undefined
8.函数内this指向报错,构造函数不存在静态成员
9.定时器内this指向window

深拷贝/浅拷贝:拷贝对象

1.浅拷贝

1.Object.assign(新对象,旧对象名称)
2.算法:for in循环原对象,赋值给新对象 (for in 对象a  b[k]=a[k])

原对象方法/属性改变,新对象也跟着改变 
新对象方法/属性改变,原对象也跟着改变

(浅拷贝属性一同变吗?????)

2.深拷贝

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值