zoukankan      html  css  js  c++  java
  • call()和apply( )

    实际上,apply和call的功能是一样的,只是传入的参数列表形式不同。
    call:在其中运行函数的作用域,必须逐个列举出来的传递给该函数的参数
    apply:在其中运行函数的作用域和一个数组argArray或arguments。

    call 和 apply的最大用处是扩展函数赖以运行的作用域——

    window.color = "red";
    var o = {color:"green"};
    
    function sayColor(){
        console.log(this.color);
    }
    
    sayColor();     //red
    sayColor.call(this);     //red
    sayColor.call(window);      //red
    sayColor.call(o);           //green
    

    所以call和apply是传了一个环境对象进去,它们使函数和环境对象解耦,同样的方法可以复用到多个对象上。就像是显示用户ID这个动作方法,不需要为每一个用户对象都创建这样一个方法,只需要传入用户对象,就可以返回不同的ID。
    当然,这样的效果也可以让原型链来达成。

    感谢阅读!

  • 相关阅读:
    Python 函数 -range()
    Python 函数 -xrange()
    Python 函数 -globals()
    Python 函数-max()
    Python 函数 -hasattr()
    Python 函数 memoryview()
    Python函数 hash()
    QAQ
    Õ() Big-O-notation
    一道有趣的条件概率题
  • 原文地址:https://www.cnblogs.com/liulangbxc/p/14658949.html
Copyright © 2011-2022 走看看