1. var cat = {
    2. name: "喵喵",
    3. eatFish: function (param1, param2) {
    4. console.log("吃鱼");
    5. console.log("this的指向=>");
    6. console.log(this);
    7. console.log(param1, param2);
    8. },
    9. };
    10. var dog = {
    11. name: "汪汪",
    12. eatBone: function (param1, param2) {
    13. console.log("啃骨头");
    14. console.log("this的指向=>");
    15. console.log(this);
    16. console.log(param1, param2);
    17. },
    18. };
    19. //第一种,用call方法
    20. cat.eatFish.call(cat, "旺财-13岁", "call");
    21. //第二种,用apply方法,参数不一样
    22. cat.eatFish.apply(dog, ["旺财-13岁", "apply"]);
    23. var eatFishFun = cat.eatFish.bind(dog, "旺财-13岁", "bind"); //返回的是方法
    24. eatFishFun();

    这三个操作都是改变方法内部this的指向,call和apply只是参数形式不同,bind返回方法,相当于柯里化,提前绑定输入后输出方法。apply输入参数为数组形式。