zoukankan      html  css  js  c++  java
  • apply & call

    一。意义

    function.apply(obj,args)

    obj代替function里this对象

    args作为参数传给function

    二。实例

    1. obj代替function里this对象

    1     function f(){
    2          alert(this.x + this.y);
    3     }
    4      var obj = {x:1,y:2};
    5      f.call(obj);         //3

    2. API应用

        Math.max(param1,param2,param3…) :实现得到数组中最大的一项

    问题:max不支持数组参数

    解决:根据apply的特点来解决

    var max=Math.max.apply(null,array)

     这块在调用的时候第一个参数给了一个null,这个是因为没有对象去调用这个方法,我只需要用这个方法帮我运算,得到返回的结果就行,

    所以直接传递了一个null过去。undefine是未定义的对象 ,null是定义的对象, 但是没有实例,可以理解为null是defined了的obj。

     

    3. 继承 

     1 /*定义一个人类*/
     2     function Person(name,age)
     3     {
     4         this.name=name;
     5         this.age=age;
     6     }
     7     /*定义一个学生类*/
     8     functionStudent(name,age,grade)
     9     {
    10         Person.apply(this,arguments);
    11         this.grade=grade;
    12     }
    13     //创建一个学生类
    14     var student=new Student("qian",21,"一年级");
    15     //测试
    16     alert("name:"+student.name+"
    "+"age:"+student.age+"
    "+"grade:"+student.grade);
    17     //大家可以看到测试结果name:qian  age:21  grade:一年级
    18     //学生类里面我没有给name和age属性赋值啊,为什么又存在这两个属性的值呢,这个就是apply的神奇之处.
  • 相关阅读:
    Asp.net web api部署在某些服务器上老是404
    log4net记录日志到数据库自定义字段
    PIE-Basic 投影变换
    PIE-Basic 波段合成
    PIE-Basic 空间量测
    PIE-Basic 存储格式转换
    PIE-Basic 位深转换
    PIE-Basic 数据拉伸与显示
    PIE-Basic数据信息查看
    PIE-Basic 影像格式转换
  • 原文地址:https://www.cnblogs.com/yuyutianxia/p/3840335.html
Copyright © 2011-2022 走看看