恋爱版理解call和apply
哈哈哈哈哈哈,学不会是不是因为你没对象~
有个这样的故事,男主角叫沐沐,女主角叫花花,男孩纸有才华,女孩纸有美貌,自从他们在一起之后,他们就一起相亲相爱变得更好了~
一 他们的日常
1.他们的爱好
花花喜欢用勺子吃蛋糕,为了保持身材,也会用运动器材跳绳和做哑铃,花花买了各种运动器材,什么都有,女孩纸怕胖
const huahua = {
name: '蛋糕',
like: '文章',
eat() {
console.log(`吃${this.name}`) // 吃西瓜
},
exercise(x, y) {
console.log(`快乐的${x}, ${y}`); // 快乐的打球, 做哑铃
}
}
沐沐喜欢用电脑写代码
const mumu = {
like: 'code',
name: '西瓜',
write() {
console.log(`写${this.like}`) // 写文章
}
}
2.他们的相处
某天下午沐沐想吃西瓜,但是发现没有勺子,那沐沐想借用花花的勺子,那当然可以呀
huahua.eat.apply(mumu)
于是打印了吃西瓜,花花的勺子(huahua这个对象的eat功能
),但是使用的人是沐沐(调用方法的人已改变
)
这时花花想写文章,于是借用了沐沐的电脑
mumu.write.apply(huahua)
于是打印了写文章,沐沐的电脑(沐沐这个对象的电脑打字功能
),但是使用的人是花花(调用方法的人已改变
)
沐沐吃完西瓜,说: BB,可以借你的运动器材给我用一下嘛?我吃多了变胖就不帅了
huahua.exercise.apply(mumu, ['打球', '做哑铃'])
于是打印了快乐的打球, 做哑铃, 这里先是指定调用人,然后以数组的方式传参. 当然也可以用下面这种方式调用
huahua.exercise.call(mumu, '打球', '做哑铃')
二 他们的爱情故事
嘿嘿嘿,写代码了,爱情啥? 你有对象吗你?
总结: apply方法可以当作是一种方法的借调: 也就是说把某个方法引用到不包含它的某个对象上. 方法(函数)是用来被对象调用才能够执行的, 而apply恰恰指向了调用当前方法的对象
apply和call改变了this的指向,也就是改变了调用者
call和apply传参的不同就是call穿的是单个参数,字符串的方式传参,而apply是用数组的方式, 如何记忆: apply单词比较长,数组也是比较长的,长长的数组,长长的数组,长长的数组,记住了吗?
生活愉快哦-_-
转载自:https://juejin.cn/post/6925625926885572615