ES6学习一

var  let  const

var定义的变量,会进行变量提升
let和const相同点:没有变量提升,是一个块级作用域,不会污染全局变量,不能重复声明
不同点:const一般用来声明常量
模板字符串
它是用的是tab键上面的反引号,在插入变量的时候使用${变量名}

apply和call和bind

这三个能挟持另外一个对象的方法,继承另外一个对象的属性

var name = ''
var xw = { 
    name:'小王',
    say(){
        console.log( this.name )
    } 
}  
var xh={ 
    name:'小红' 
}

//call和apply都是对函数的直接调用
xw.say.call(xh)
xw.say.apply(xh)
//这样xh可以挟制到xw里面发say方法啦。可以打印出小红的名字啦

//bind方法返回的依然是一个函数,后面还需要用()来调用才行
//xw.say.bind(xh)   这样写是没有任何结果的
xw.say.bind(xh)() //这样也能挟持到xw中的方法啦

相同点:

  • 在JS中,这三者都是用来改变this指向的
  • 第一个参数都是this要指向的对象
  • 都可以利用后续参数传参

不同点:
如果say方法有传递了参数,这时候如果通过call和apply和bind方法进行传参的时候,他们的写法不同。写法如下:

var name = ''
var xw = { 
    name:'小王',
    say(a,b){
        console.log( this.name,a+b )
    } 
}  
var xh={ 
    name:'小红' 
}
xw.say.call(xh,1,2)
xw.say.apply(xh,[1,2])
xw.say.bind(xh,1,2)()
xw.say.bind(xh)(1,2)

总结:

  1. 都可以在函数调用时传递参数。call,bind方法需要直接传入,而apply方法需要以数组的形式传入。
  2. call,apply方法是在调用之后立即执行函数,而bind方法没有立即执行,需要将函数再执行一遍。
  3. 改变this对象的指向问题不仅有call,apply,bind方法,也可以使用that变量来固定this的指向。

剩余参数…keys

  1. 剩余参数由...和一个紧跟着的具名参数指定,比如...keys&
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值