ES5 绑定 this 的方法
2024-10-21 07:43:48
this
的动态切换,固然为 JavaScript 创造了巨大的灵活性,但也使得编程变得困难和模糊。有时,需要把this
固定下来,避免出现意想不到的情况。JavaScript 提供了call
、apply
、bind
这三个方法,来切换/固定this
的指向。
1 1、函数实例的call方法,可以指定函数内部this的指向(即函数执行时所在的作用域),然后在所指定的作用域中,调用该函数。
2 var obj = {};
3
4 var f = function () {
5 return this;
6 };
7
8 f() === window // true
9 f.call(obj) === obj // true
10
11
12 2、apply方法的作用与call方法类似,也是改变this指向,然后再调用该函数。唯一的区别就是,它接收一个数组作为函数执行时的参数,使用格式如下。
13 function f(x, y){
14 console.log(x + y);
15 }
16
17 f.call(null, 1, 1) // 2
18 f.apply(null, [1, 1]) // 2
19
20 3、bind()方法用于将函数体内的this绑定到某个对象,然后返回一个新函数。
21 var counter = {
22 count: 0,
23 inc: function () {
24 this.count++;
25 }
26 };
27
28 var func = counter.inc.bind(counter);
29 func();
30 counter.count // 1
最新文章
- 探索 OpenStack 之(17):计量模块 Ceilometer 中的数据收集机制
- DedeCMS 5.7 后门漏洞
- 收集的冻结table 标题和左侧(完美)
- GLSL学习_高斯滤波
- 【Unity3D】枪战游戏—弹孔设置
- springside springmvc 的一个SB问题
- poj 2001 Shortest Prefixes
- Notes常用事件整理
- 新出台的治理iMessage垃圾短信的规则
- trove 开发者阅读翻译
- bind() unbind()绑定解绑事件
- npm常用命令及版本号浅析
- PE文件简介
- 【Redfin SDE intern】跪经
- 虚拟机centos7服务器下,启动oracle11g数据库和关闭数据库
- Spring Cloud(Dalston.SR5)--Config 集群配置中心-加解密
- python基础类型—元祖
- 运行msckf_vio
- 几种开源的TCP/IP协议栈分析
- linux内存碎片防治技术