• JS apply和call


    前言

    很基础,放在这里是为了整理前端js的思维导图。

    正文

    方法定义

    语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]])

    定义:调用一个对象的一个方法,以另一个对象替换当前对象。
    说明:

    call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
    如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
    

    语法:apply([thisObj[,argArray]])
    定义:应用某一对象的一个方法,用另一个对象替换当前对象。
    说明:

    如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。
    如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。
    

    例子

    <script>
        function add(a,b)
        {
            alert(a+b);
        }
        function sub(a,b)
        {
            alert(a,b);
        }
        add.call(sub,4,5);
    </script>
    

    这段代码大多数网站都见过吧,对于新手来说可能会引起误导,这到底证明了啥子东西呢?什么也没有证明啊,既然有关this,那我就这样改一下。

    function add(a,b)
    {
    //输入this
        console.log(this);
        alert(a+b);
    }
    

    打印this

    ƒ sub(a,b)
     {
     alert(a,b);
     }
    

    好的,那么后面那个就相当于替换了arguments。这样整个函数的历程我可以这么理解,这个孩子脱离了他的父母(this)的约束,以及丢弃了给他的东西(arguments ),得到了独立然后被社会(新的this)约束了再社会上得到了新的收获(新的arguments )。

  • 相关阅读:
    各地电信运营商插广告赚钱,北京联通也不甘落后
    也谈Server Limit DOS的解决方案
    Still Believe
    无奈小虫何
    好朋有也有类别
    无为而治
    青鸟随想
    落寞时分
    网站开发学习路线和资料
    C++实例 添加快捷键表
  • 原文地址:https://www.cnblogs.com/aoximin/p/13129969.html
Copyright © 2020-2023  润新知