JS 函数非继承的call和apply方法

同:call & apply 主要是用于扩展this指向,降低this作用域与函数之间的耦合度;

区别:传参差异

function.call(this/object,params1,params2,...)
第一个参数为作用域指向参数,后边参数如过存在多个必须分开书写
复制代码
function.apply(this/object,[array]/arguments)
第一个参数为作用域指向参数,后边参数是一个素组或者参数对象
复制代码

案列

let name="A";
let b={name:"B"}
function alertInfo(){alert(this.name);
}
alertInfo.call();//弹框 A,this默认指向windows对象
alertInfo.apply();//弹框 A,this默认指向windows对象
复制代码
let name="A";
let b={name:"B"}
function alertInfo(age){alert(this.name+age);
}
alertInfo.call(b,20);//弹框 B 20,this此时指向b对象
alertInfo.apply(b,20);//弹框 B 20,this此时指向b对象
复制代码
let name="A";
let b={name:"B"}
function alertInfo(age,sex){alert(this.name+age);
}
alertInfo.call(b,20,'男');//弹框 B 20 男,this此时指向b对象
alertInfo.apply(b,20,'男');//错误:该方法接收array或者对象
复制代码

JS函数bind方法

该方法可用于创建一个函数实例,其this值会被bind绑定至该函数中

案列

let name="A";
let b={name:"B"}
function alertInfo(){alert(this.name);
}
let initF=alertInfo.bind();//创建的函数实例
initF();//弹框 A,this默认指向windows对象
复制代码
let name="A";
let b={name:"B"}
function alertInfo(){alert(this.name);
}
let initF=alertInfo.bind(b);//创建的函数实例
initF();弹框 B,this此时指向b对象
复制代码

JS函数方法Call Apply Bind运用相关推荐

  1. ES6/03/函数的定义方式和调用方式,函数内的this指向,改变函数中this指向的三个方法(call(),apply(),bind())

    函数的定义方式 1,自定义函数(命名函数) function fun(){}; 2,函数表达式(匿名函数) var fun =function(){}; 3,利用new Function( '参数1' ...

  2. c#调用js脚本报错_C#后台调用前台JS函数方法

    总结了公司其他人的一些C#后台调用前台的方法: 方法一: 假设前台页面的JS脚本标签中有如下函数: function A() { alert("hello word!"); } 那 ...

  3. android调用js函数方法,Android和JavaScript相互调用的方法

    本文实例讲述了Android和JavaScript相互调用的方法.分享给大家供大家参考,具体如下: Html页面和Java代码结合的方式一般用在界面经常被更改 的情况下,可以讲html放在网络中,软件 ...

  4. 复习javascript中call,apply,bind的用法

    一直很难理解js中的call apply bind,在w3schools,mdn阅读了,也看了很多相关的文章,今天我来写下我理解的call apply bind 首先创建一个函数 function m ...

  5. 手动封装js的call和apply和bind和typeof和new方法

    我是歌谣 放弃很容易 但是坚持一定很酷 微信公众号关注小歌谣一起学习前后端知识 闲来无事做 不如敲代码今天讲一下js里面的callapply和bind和typeof方法的手动封装由于最近比较忙但是有时 ...

  6. 总结apply和call方法的使用 bind方法 bind方法的使用 函数中的几个成员

    总结apply和call方法的使用 <!DOCTYPE html> <html lang="en"> <head><meta charse ...

  7. windows 改变文件大小 函数_手写 bind call apply 方法 与 实现节流防抖函数

    实现 bind call apply 方法 this 是什么? this是指包含它的函数作为方法被调用时所属的对象.这句话理解起来感觉还是很拗口的,但是如果你把它拆分开来变成这三句话后就好理解一点了. ...

  8. JavaScript内置一些方法的实现原理--new关键字,call/apply/bind方法--前戏

    new关键字,call/apply/bind方法都和this的绑定有关,在学习之前,首先要理解this. 一起来学习一下this吧 首先.this是一个对象. 对象很好理解,引用类型值,可以实现如th ...

  9. 面试官问:能否模拟实现JS的call和apply方法

    写于2018年11月30日,发布在掘金上阅读量近一万,现在发布到微信公众号申明原创.相对比较基础的知识,虽然日常开发可能用得比较少,各种源码中有很多call和apply,需要掌握. 前言 这是面试官问 ...

最新文章

  1. C++ 中有大量的函数用来操作以‘\0‘结尾的字符串
  2. Hadoop详解(五):HDFS HA 和 Federation
  3. C++中函数模板的用法详细解析
  4. 【置顶】方立勋JavaWeb学习地址
  5. mybatis一级缓存二级缓存
  6. 数据结构 - 哈希表(用数组+链表实现存储员工信息,添加增删查功能)
  7. docker jenkins 公钥_代码自动发布docker(20.10.1)+k8s(1.20.1)
  8. 交换机分布缓存_网络交换机缓存在数据中心的作用
  9. 17个Python的牛逼骚操作,你都OK吗?
  10. 当对象转换成JSON的时候处理时间格式
  11. spring容器_Spring 容器的启动过程探秘
  12. 《Cocos2d-JS开发之旅》重印在即,感谢大家的支持
  13. 一个不简洁的约瑟夫环解法
  14. UniCode 常用字符大全
  15. 复工后的前端学习建议,非常实用!
  16. 第二类斯特林数 - Push Botton Lock(POJ 3088)
  17. rust三人防炸家_《文明重启》三种建房小技巧,防炸是关键,别再轻易被打工...
  18. java joda 获取utc时间_Java获取时间与系统时间相差8小时终极解决方案
  19. flasgger手写phpwind接口文档
  20. 服务器系统总是蓝屏,Windows 2012R2 服务器频繁蓝屏

热门文章

  1. java贪吃蛇_如何用Java还原童年回忆?在线教你完成贪吃蛇小游戏
  2. mysql导入数据比原来多_Oracle和MySQL的数据导入,差别为什么这么大
  3. GPU Gems1 - 18 空间BRDF(Spatial BRDFs)
  4. 四元数(Quaternion)和欧拉角(Eulerangle)
  5. html相对定位向上偏移,使用CSS的相对定位和偏移量
  6. 3D姿态估计——ThreeDPose项目简单易用的模型解析
  7. BZOJ 1683.City skyline 城市地平线
  8. Luogu 3698 [CQOI2017]小Q的棋盘
  9. 乐尚网络:小程序商城零售行业10大新赋能
  10. React 简单实例 (React-router + webpack + Antd )