美文网首页
11.bind-call-apply方法

11.bind-call-apply方法

作者: Fl_来看看 | 来源:发表于2019-06-06 13:37 被阅读0次

1.this是什么?

  • 谁调用当前函数或者方法, this就是谁

2.这三个方法的作用是什么?

  • 这三个方法都是用于修改函数或者方法中的this的

2.1.bind方法作用
修改函数或者方法中的this为指定的对象, 并且会返回一个修改之后的新函数给我们

  • 注意点: bind方法除了可以修改this以外, 还可以传递参数,只不过参数必须写在this对象的后面

2.2.call方法作用

  • 修改函数或者方法中的this为指定的对象, 并且会立即调用修改之后的函数
  • 注意点: call方法除了可以修改this以外, 还可以传递参数, 只不过参数必须写在this对象的后面

2.3.apply方法作用

  • 修改函数或者方法中的this为指定的对象, 并且会立即调用修改之后的函数
  • 注意点: apply方法除了可以修改this以外, 还可以传递参数,只不过参数必须通过数组的方式传递
 let obj = {
            name: "zs"
        }
        /*
        // function test(a, b) {
        //     console.log(a, b);
        //     console.log(this);
        // }
        // test(10, 20);
        // window.test();
        // let fn = test.bind(obj, 10, 20);
        // fn();

        // test.call(obj, 10, 20);

        // test.apply(obj, [10, 20]);
        */

        function Person() {
            this.name = "lnj";
            this.say = function () {
                console.log(this);
            }
        }
        let p = new Person();
        // p.say();
        // let fn = p.say.bind(obj);
        // fn();
        // p.say.call(obj);
        p.say.apply(obj);

学这些是为了解决
10.继承方式一

相关文章

网友评论

      本文标题:11.bind-call-apply方法

      本文链接:https://www.haomeiwen.com/subject/fwnyxctx.html