js 的胖箭头问题
2024-10-02 00:57:45
我们在声明函数的时候通常是
var foo function(a){
console.log(a)
};
用ES6 我们写成了这样
var foo = a =>{
console.log(a);
};
foo(2);
只是少些了function字段哪些冗余的东西吗
首先看下下面的代码:
var obj={
id:"LOVE"
love:functionLove(){
console.log(this.id);
}
};
var id = "HIT"
obj.love(); //LOVE
setTimeout(obj.love,100); // LOVE
都是LOVE ,没什么毛病吧,本应该是setTimeout(obj.love,100);输入HIT
按照分析,love 函数丢失了同this 之间的绑定,应该是HIT this 应该是window 最常用的是var self = this;来处理下this:
var obj = {
id: "not LOVE",
love: function() {
var self = this
console.log(this.id);
}};
var id = "not HIT"
obj.love()
setTimeout(obj.love(), 1000); 哦 传说中的胖尖头this绑定时的行为和普通函数的行为完全不一致,难道是在es5 中解决了?没有 ,在严格模式下,这些都不是问题,但是在非严格模式下是会输出Hit的
最新文章
- Atitit.软件开发的几大规则,法则,与原则Principle v3
- SQL SERVER中关于OR会导致索引扫描或全表扫描的浅析
- Centos7设置IP为固定值
- sip协议注册时response值的计算方法
- Nginx的启动、停止与重启
- CentOS6.5安装openLdap
- SNF开发平台WinForm之十三-单独从服务器上获取PDF文件进行显示-SNF快速开发平台3.3-Spring.Net.Framework
- Android线程池(一)
- 关于<;a href=&#39;javascript:function()&#39;>;
- ERP系统上传文档信息下载(十八)
- Android SDK Manager Google Apis 下载
- C#编写的windows程序随系统启动
- [Javascript] The Array map method
- Gradle 用法总结
- EntityFramework Core 2.0 Explicitly Compiled Query(显式编译查询)
- [转]What is a WebRTC Gateway anyway? (Lorenzo Miniero)
- Docker 镜像
- ruby----controller中简单的增删改 方法定义
- Python基础-socketserver
- 使用jqprint插件完成页面打印