一个案例明白call(),apply(),bind()的用于以及区别
<script>
var [name,age] =['张洪伟','17']
var obj = {
nikename:'小张同学',
yourage:this.age, //17
do:function(girl,play){
console.log(this.nikename + '的年龄是'+this.age+'喜欢'+girl +"和" +play)
}
}
console.log(obj.nikename)
console.log(obj.yourage) //指向全局this window
// obj.do()//
// bind() apply() call()都可以用来改变this指向
var obj2 = {
nikename:'小宏同学',
age:18,
like:'耍帅'
}
obj.do.call(obj2); //小宏同学的年龄是18
obj.do.apply(obj2) //小宏同学的年龄是18
obj.do.bind(obj2)() //小宏同学的年龄是18
// 1.call() apply() bind() 都可以改变this指向 但是 bind() 绑定的意思()
obj.do.call(obj2,'漂亮女孩','打游戏');
obj.do.apply(obj2,['大眼睛的女孩','打王者'])
// call和apply的区别 call接受单个参数, , , apply接受数组
obj.do.bind(obj2,'女生','吃')()
// bind接受单个参数,,,
</script>