zoukankan      html  css  js  c++  java
  • 继承--call aplly bind方法

    1.用途

        1)apply call  bind 都是用来改变this指向

        2)apply 和 call会让当前函数执行,而bind会返回一个函数,后续需要的时候再调用执行

    2.this指向问题

        1)如果函数中的this没有调用对象,则this指向window(严格模式下,this为undefinded)

        2)如果函数中this被不包含对象的对象调用,则this指向调用他的对象

        3)如果函数中this被包含多级对象的对象调用,则this指向调用它的上一级对象

        4)如果我们调用了对象,并将其赋值给某个变量,然后在需要的时候在去调用执行它,则此时this也是指向的window对象,

       1)call详解

        参数call(newThis,arg1,arg2....)args是将会传入被绑定函数的参数,被绑定函数执行时,参数的顺序为:newThis args 原参数

        newThis包括以下类型:

         (1)不传,或者传null undefined,函数中this指向window对象

         (2)传递另一个函数的函数名,函数中的this指向这个函数的引用

         (3)传递字符串,数值或者布尔类型等基础类型,函数中的this指向其对应的包装对象,如String Number Boolean等

         (4)传递一个对象,函数中的this指向这个对象

         call其实是apply的一个语法糖,他们的作用都是用于改变上下文的指向,去区别在于call接收多个参数,而apply接收一个数组

    4.bind方法的返回值的函数

       bind也是用于改变上下文的this的指向

      bind()方法会创建一个新的函数,称为绑定函数,当调用这个绑定函数时,绑定函数会以创建它时传入bind()方法的第一个参数作为this,传入bind()方法的第二个及以后的参数,加上绑定函数运行时本身的参数按照顺序作为原函数的参数来调用原函数

  • 相关阅读:
    docker mysql
    dotnet core webapi +vue 搭建前后端完全分离web架构
    npm run dev
    docker pureftpd
    虚拟主机连接FTP发送"AUTH TLS"命令后提示“无法连接到服务器”
    [mobile开发碎碎念]手机页面上显示PDF文件
    T-SQL注意事项(1)——SET NOCOUNT ON的去与留
    Tomcat 部署多个项目出现错误
    十进制小数和二进制小数之间的转换
    sed 替换多个空格为一个
  • 原文地址:https://www.cnblogs.com/orange2013/p/14429756.html
Copyright © 2011-2022 走看看