简易理解
猫吃鱼,狗吃肉,奥特曼打小怪兽。
有天狗想吃鱼了
猫.吃鱼.call(狗,鱼)
狗就吃到鱼了
猫成精了,想打怪兽
奥特曼.打小怪兽.call(猫,小怪兽)
或者 马云.赚钱.call(我)
this指向
this的指向在定义时是确定不了的,只有在执行时才会确定,指向调用它的那个函数。
call
实现思路:
- 将方法绑定在被改变的对象下
- 调用函数
- 删除对象下的函数
1 | var obj = { |
apply
1 | function fooo(name, sex) { |
bind
bind() 方法会创建一个新函数。当这个新函数被调用时,
bind() 的第一个参数将作为它运行时的 this,
之后的一序列参数将会在传递的实参前传入作为它的参数
1 | function foooo(param1, param2) { |