闭包中的this
来源:互联网 发布:淘宝加入放心淘的条件 编辑:程序博客网 时间:2024/05/09 09:47
在不使用闭包的情况下
- this指向的调用该函数的对象
var name = "小刚";var obj = { name:"小明", fn:function () { console.log(this.name,this); }}obj.fn() // 小明 obj
闭包函数中this的指向
- 在使用了闭包的情况下,this会丢失自己原本的指向
- 下面的例子中this 实际上是指向的window
var name = "小刚";var obj = { name:"小明", fn:function () { return function () { console.log(this.name); } }}
obj.fn()() // 小刚 window
如何修改闭包函数中 this 的指向
1. 使用一个变量保存 当前 this(简单易懂的方法)
var name = "小刚"; var obj = { name:"小明", fn:function () { var that = this ; return function () { console.log(that.name); } } }
obj.fn()() // 小明
2. 使用 call 或 apply方法
var obj = { name: "小明", fn: function() { var foo = function() { console.log(this.name); } foo.call(this) return foo }}
obj.fn()() // 小明
3. 使用 bind 方法
var obj = { name: "小明", fn: function() { return function() { console.log(this.name); }.bind(this) }}
obj.fn()() // 小明
4. 使用ES6的箭头函数
- 箭头函数中的this完全使用了一套新的规则
var obj = { name: "小明", fn: function() { return () => { console.log(this.name) } }}
obj.fn()() // 小明
阅读全文
0 0
- 闭包中的this
- 关于闭包中的this
- Javascript 闭包中的this
- JavaScript闭包中的this
- 闭包中的this对象
- javascript闭包中的this
- 关于javascript闭包中的this对象
- JavaScript闭包-闭包中的变量和this对象
- Groovy闭包中的this,owner和delegate
- Js函数深入理解-闭包中的this
- 闭包 与 this
- this和闭包
- JavaScript 闭包 this
- 闭包、this指向
- JavaScript之闭包的实现、闭包中的this对象
- JavaScript闭包--this对象
- JS递归、闭包、this
- 4.Groovy闭包中的this,owner和delegate的含义
- linux别名alias命令
- ubuntu codeblocks通过配置文件修改主题
- DSP芯片的基本结构
- git 提交本地文件到coding.net 简单操作
- (一)HBase学习之路
- 闭包中的this
- Drying
- [CQOI2014]数三角形
- 神经网络和深度学习(一)——初识神经网络
- 图像算法工程师应具备的技能
- hpuQAQ & 火星情报局
- 局部变量, 成员变量, 类变量的区别
- 网络爬虫之cheerio
- JavaScript中的严格模式