apply和call的区别在哪里

apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性.

Function.apply(obj,args)方法能接收两个参数
obj:这个对象将代替Function类里this对象
args:这个是数组,它将作为参数传给Function(args-->arguments)


call:和apply的意思一样,只不过是参数列表不一样.


Function.call(obj,[param1[,param2[,…[,paramN]]]])
obj:这个对象将代替Function类里this对象
params:这个是一个参数列表

call示例:

            /*定义一个人类*/
            function Person(name,age){
                this.name = name;
                this.age = age;
            }
            /*定义一个学生*/
            function Student(name,age,grade){
                Person.call(this,name,age,grade);
                this.grade = grade;
            }
            /*实例化一个学生*/
            var student = new Student("张三",21,"一年级");
            alert("name:"+student.name+"
"+"age:"+student.age+"
"+"grade:"+student.grade);

apply示例:

           <script>
               /*定义一个人类*/
               function Person(name,age){
                   this.name = name;
                   this.age = age;
               }
               /*定义一个学生*/
               function Student(name,age,grade){
                   this.grade = grade;
                   Person.apply(this,arguments);

               }
               /*实例化一个学生*/
               var student = new Student("张三",21,"一年级");
               alert("name:"+student.name+"
"+"age:"+student.age+"
"+"grade:"+student.grade);
           </script>
原文地址:https://www.cnblogs.com/fan-fan/p/3550606.html