zoukankan      html  css  js  c++  java
  • call与apply的用法

    call与apply的作用:

    1.改变函数内部this指向

    2.实现函数继承

    代码演示:

    var obj={dividend:2};
    
    function isOdd(num){
    
    var result = num%(this.dividend)===0?"偶数":"奇数";
    
    return (num+“是”+result);
    
    }
    
    isOdd(8) : 8是奇数//输出结果
    isOdd.call(obj,8); 8是偶数//输出结果
    

     第一次执行函数isOdd,this.dividend为undefined,因此num%(this.dividend)执行结果为NaN,NaN不等于0,因此结果为奇数;

       但是在第二次利用了isOdd.call后,isOdd的指向不再是window了,而是指向了call的第一个参数,此时为obj,而函数执行内部的this.dividend自然就变成了2,最终完成函数的执行,输出结果 8 位偶数。

    call 和 apply二者的作用完全一样,只是接受参数的方式不太一样。

    方法定义
    apply
    Function.apply(obj,args)方法能接收两个参数:

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

    args:这个是数组或类数组,apply方法把这个集合中的元素作为参数传递给被调用的函数。

    call

    call方法apply方法的第一个参数是一样的,只不过第二个参数是一个参数列表

     
  • 相关阅读:
    地区表设计(包括数据插入) Dear
    本博客的内容
    linux msn
    相关的一些技术
    相关的一些产品
    考第一名的学生的发言
    AIX&LINUX操作系统调优
    shell for循环
    自动化测试
    DB2数据库日志
  • 原文地址:https://www.cnblogs.com/suhaihong/p/7357851.html
Copyright © 2011-2022 走看看