美文网首页
08JavaScript的apply与call的用法

08JavaScript的apply与call的用法

作者: 个人不完美 | 来源:发表于2018-09-21 20:17 被阅读0次
    1、什么情况下需要使用apply 或者 call?
    在一个函数对象中调用另一个函数对象 类似于构造函数的继承
    
            function Animal(){
                this.type='动物';
            }
            function Cat(name,color){
                //apply 是将父函数的对象绑定在子对象里面
                Animal.apply(this);
                this.name=name;
                this.color=color;
            }
            var cat1=new Cat("大明","黄色");
            console.log(cat1.type);  // 动物
    
           function Animal(){
                this.type='动物';
            }
            function Cat(name,color){
                //call 是将父函数的对象绑定在子对象里面
                 Animal.call(this);
                this.name=name;
                this.color=color;
            }
            var cat1=new Cat("小明","红色");
            console.log(cat1.type);  // 动物
    
           function Person(name, age) {
    
                this.name = name;
                this.age = age;
            }
    
            function Student(name, age, score) {
    
                //Person(name,score);注意这里不能直接这样调用  这样调用函数的this指向了window 而不是构造函数
                Person.call(this, name, score);
                this.score = score;
            }
    
            var s1=new Student('gw','19','10');
            console.dir(s1);
    
    2、使用apply 和 call的区别是什么?

    两者区别参数不同 apply 可以传数组 call 一个个传

    相关文章

      网友评论

          本文标题:08JavaScript的apply与call的用法

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