• Js中的apply和call


    1.call和apply都是为了改变某个函数运行时的上下文而存在的

    2.也就是改变函数体内this的指向。

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

    4.call 需要把参数按顺序传递进去,而 apply 则是把参数放在数组里

    例如:

    func1 定义如下:
      var func1 = function(arg1, arg2) {};

    call方式:

      func1.call(this, arg1, arg2);

    apply方式

      func1.apply(this, [arg1, arg2]);

    一个应用:

    function classof(obj){
      if(obj===null){
        return "NULL"
      }
      if(obj===undefined){
        return "Undefined"
      }
      return Object.prototype.toString.call(obj).slice(8,-1)
    }

    通过Object.prototype.toString.call调用对象的方法,返回字符串,然后从字符串中截取出对象的真实类型

    说明:

    1.toString方法是object这个对象的方法,js中的每个对象都继承于object

    2.object的toString方法会返回[object Object]这样的字符串,其中8到倒数第二位为类型

    3.很多JS中的类都重写了toString方法,所以返回的形式就不一定是2中规定的那样了

    4.利用Object.prototype.toString.call调用

  • 相关阅读:
    TeX中的引号
    竖式问题
    蛇形填数
    开灯问题
    排列
    分数化小数
    子序列的和
    cookie
    post请求
    get请求
  • 原文地址:https://www.cnblogs.com/413xiaol/p/6754363.html
Copyright © 2020-2023  润新知