(O)JS核心:call、apply和bind
1.
var func=function(a,b,c){console.log([a,b,c]);}; func.apply(null,[1,2,3]); //[1,2,3] func.call(null,1,2,3); //[1,2,3] func.bind(null,1,2,3); //无输出 func.bind(null,1,2,3)(); //[1,2,3] func.bind(null)(2,3,4) //[2,3,4]
解析:
当使用apply或call时,如果我们传入第一个参数为null,函数体内的this会指向默认的宿主对象,在浏览器中则是window。
apply和call只是参数传入形式不同,其他一样。但bind则不同:前面的调用call或apply时,函数直接运行,但bind不会运行,而是返回一个绑定上下文的函数并且this永远的指向bind括号中的第一个参数。
2.
call、apply和bind主要有2个作用:
①改变this的指向;
②借用其他对象的方法
转载于:https://www.cnblogs.com/jacksplwxy/p/6843307.html
(O)JS核心:call、apply和bind相关推荐
- js之call,apply和bind的模拟实现
了解call,apply和bind对于看一些源码以及封装一些工具有很大的作用. 如果想要了解并熟练使用它..就必须知道他的基本的实现原理. 一,基本用法 使用 let obj = {a: 18 }fu ...
- 理解js中的this指向以及call,apply,bind方法
<script> function a(){var user = "追梦子";console.log(this.user); //undefinedconsole.lo ...
- 手动封装js的call和apply和bind和typeof和new方法
我是歌谣 放弃很容易 但是坚持一定很酷 微信公众号关注小歌谣一起学习前后端知识 闲来无事做 不如敲代码今天讲一下js里面的callapply和bind和typeof方法的手动封装由于最近比较忙但是有时 ...
- JS高级——手写call()、apply()、bind()
0.call.apply.bind的区别 bind,call,apply的作用都是用来改变this指向的 call方法 call方法的第一个参数是this的指向 后面传入的是一个参数列表(注意和app ...
- 【JS】call,apply,bind
[JS]call,apply,bind const steven = {name: "Steven",phoneBattery: 70,charge: function (leve ...
- JS 中 call()、apply()、bind() 的用法
其实是一个很简单的东西,认真看十分钟就从一脸懵B 到完全 理解! 先看明白下面: 例 1 obj.objAge; // 17obj.myFun() // 小张年龄 undefined 例 2 show ...
- 方法apply作用于对象sort时失败_浅析call、apply 与 bind
点击上方蓝色字体轻松关注 前言 经典模式题:call.apply 与 bind的区别.来吧,今天搞一搞. call(thisArgs [,args...]) 该方法可以传递一个thisArgs参数和一 ...
- 微信小程序之apply和call ( 附示例代码和注释讲解) apply call bind
微信小程序开发交流qq群 173683895 相同点:作用是一样的,它们能劫持另外一个对象的方法,继承另外一个对象的属性: js中的call(), apply()和bind()是Function. ...
- JavaScript中的call、apply、bind深入理解
一.函数的三种角色 首先要先了解在函数本身会有一些自己的属性,比如: length:形参的个数: name:函数名: prototype:类的原型,在原型上定义的方法都是当前这个类的实例的公有方法: ...
- 记录call、apply、bind的源码
记录一下call.apply.bind的源码,然后从根本上明白其用法. 都知道call.apply与bind的用法,call(this,...arguments).apply(this,[argume ...
最新文章
- NetBpm 组织架构(4)
- git学习——四git版本管理
- jQuery源码 Ajax模块分析
- python PyQt5 QtWidgets.QAbstractSlider.valueChanged()
- 嵌入式笔录(3)-电容,频率与幅度基础
- GridView的 使用
- 程序员面试金典 - 面试题 05.02. 二进制数转字符串(浮点型 转 二进制小数,乘2取整)
- IntelliJ IDEA 2020修改菜单显示大小
- 闹猴网页特效集软件 v1.0.5.21
- Java Micro services: 传送唯一标识(request id)在Hessian call, rest API,JMS和Thread之间
- RabbitMQ (一) MQ介绍以Linux下RabbitMq环境安装
- 理解R-CNN、SPP-NET、Fast R-CNN、Faster R-CNN、FPN博文整理
- 常用的开源3D游戏引擎(转)
- 重磅 | 谱尼测试圆满承办化妆品生产企业研学班
- office办公所有版本齐全
- 2021.10.25-10.31 AI行业周刊(第69期):AI进化之路
- Python的简单代码:两天肝出画函数图像(散点图)的程序(不用matplotlib)(含白菜也能看懂的超超超详细讲解和源代码哦)
- cadence 怎么拼版_在Allegro中如何拼板
- iOS 获取屏幕尺寸
- Comet OJ 夏季欢乐赛 Gree的心房