美文网首页
📕 call、apply、bind

📕 call、apply、bind

作者: 一名有马甲线的程序媛 | 来源:发表于2021-08-20 13:44 被阅读0次

    使用方法

    call 可以调用函数,可以改变函数中this指向,参数依次排列在后面
    apply 可以调用函数,可以改变函数中this指向,参数为数组格式
    bind 不会调用函数,可以改变函数中this指向,参数与call一模一样

        let boy = {
          name: 'zz',
          sayName(){
            console.log(`我是${this.name}`);
          },
          eat(food1, food2){
            console.log(`我喜欢吃${food1}和${food2}`)
          }
        }
        let girl = {
          name: 'pp'
        }
    
        boy.sayName.call(girl) // 我是pp
    
        boy.eat.call(girl, 'pizza', '水煎肉') // 我喜欢吃pizza和水煎肉
    
        boy.eat.apply(girl, ['pizza', '水煎肉']) // 我喜欢吃pizza和水煎肉
    
        let fun = boy.eat.bind(girl, 'pizza', '水煎肉')
        fun(); // 我喜欢吃pizza和水煎肉
    

    基于call的多重继承

        function Animal(){
          this.eat = function(){
            console.log('吃');
          }
        }
        function Bird(){
          this.fly = function(){
            console.log('飞');
          }
        }
        function Cat(){
          Animal.call(this);
          Bird.call(this);
          this.sayName = function(){
            console.log('pp');
          }
        }
        let cat = new Cat();  // this指向的是小cat
        cat.sayName();
        cat.eat();
        cat.fly();
    

    如果本文对你有所帮助,感谢点一颗小心心,您的支持是我继续创作的动力!
    最后:写作不易,如要转裁,请标明转载出处。

    相关文章

      网友评论

          本文标题:📕 call、apply、bind

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