12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- // function fn1(x,y) {
- // var sum = x + y;
- // console.log(sum,'sum');
- // console.log(this,'1');
- // console.log(this.name,'2');
- // }
- // var obj = {
- // name: 'LiLi'
- // }
- // fn1(1,2)
- // fn1.call(obj,1,2);
- // 改变this指向的方法
- // 1.call(修改的this指向,参数1,参数2)
- // 2.apply(修改的this指向,[参数1,参数2])
- // 3.bind(修改的this指向,参数1,参数2)()
- // 区别:
- // 1.bind不会直接调用函数方法,apply和call会直接调用函数
- // 2.call 第二个参数开始,需要将传入的参数都逐个列出来
- // 3.apply第二个参数开始,需要将传入的参数放在数组里
- // function fn2(a,b) {
- // var sum = a*b;
- // console.log(sum);
- // console.log(this);
- // }
- // var obj1 = {
- // sex: '女'
- // }
- // fn2(2,3);
- // fn2.apply(obj1,[2,3])
- function fn3(y,z) {
- var sum = y - z;
- console.log(sum);
- console.log(this);
- console.log(this.age);
- }
- var obj2 = {
- age:'100+'
- }
- fn3(10,2);
- fn3.bind(obj2,10,2)();
|