js语法

apply用法

1.对象的继承
Function.apply(obj,args)方法能接收两个参数

obj:这个对象将代替Function类里this对象

args:这个是数组,它将作为参数传给Function(args-->arguments)

示例:

   function Person(name,age)  
    {  
        this.name=name;  
        this.age=age;  
    }  
    /*定义一个学生类*/  
    function Student(name,age,grade)  
    {  
        Person.apply(this,arguments);  
        this.grade=grade;  
    }  
    //创建一个学生类  
    var student=new Student("zhangsan",21,"一年级");  
    //测试  
    alert("name:"+student.name+"\n"+"age:"+student.age+"\n"+"grade:"+student.grade);  
    //大家可以看到测试结果name:zhangsan age:21  grade:一年级  
    //学生类里面我没有给name和age属性赋值啊,为什么又存在这两个属性的值呢,这个就是apply的神奇之处.

2、利用Apply的参数数组化来提高
正常情况:
Math.max(5,8,9)方法只能传多个参数
用apply提高之后:
var arr=[5,7,9,1];
var result = Math.max.apply(null,arr);
result等于arr中的最大值

正常情况下,push方法不能push数组,利用apply之后:
Array.prototype.push.apply(arr1,arr2);
执行完此方法之后,相当于arr1 = arr1+arr2

你可能感兴趣的:(js语法)