JavaScript基础11——ES5和ES6
2024-09-07 14:11:13
ES5↓↓↓
bind方法/this关键字
bind()方法会创建一个新函数,称为绑定函数,当调用这个绑定函数时,绑定函数会以创建它时传入bind()方法的第一个参数作为this,传入 bind() 方法的第二个以及以后的参数加上绑定函数运行时本身的参数按照顺序作为原函数的参数来调用原函数。
bind可以改变当前函数的this指向
var obj = {
name:"admin",
fn:function(a){
console.log(a)
document.onclick = function(){
console.log(this.name);
console.log(a);
console.log(arguments);
}.bind(this,1,2,3,4,5,5,6,2,7,3,8,5,56,0,7,10);
}
}
obj.fn(12);
利用此原理,可以使原本没有这个功能的对象,具有另一个对象的功能
var a = {
name:"admin"
}
var b = {
name:"uesr",
show:function(){
console.log(this.name);
}
}
b.show();
var c = b.show.bind(a);
c();
常用方式,用来改变函数内计时器函数this的指向
for(var i=0;i<ali.length;i++){
ali[i].onclick = function(){
setTimeout(function(){
console.log(this)
}.bind(this),500)
}
}
JSON.parse和JSON.stringify
JSON是一种高效的数据存储格式,JSON的结构和对象一致,也是以键值对的形式来进行存储的;但是JSON是字符型数据 ECMAScript5中新增了对象和JSON数据的有序化和反序化方法: JSON.parse(str) 将json字符转换成对象 JSON.stringify(obj) 将对象转换成json字符串 对象的key必须放在双引号内var obj = {"left":10}
json的字符串必须是单引号var str = '{"left":10}' 注意:在JSON数据文件中,不允许出现undefined和function和NaN,在强制转换过程中会省略undefined和function的属性,将NaN转成null 实现深拷贝的黑科技:
如果遇到最新文章
- Spark编译与打包
- Google Chrome 源码下载地址 (Google Chrome Source Code Download)
- Qt中的多线程技术(列表总结比较,多线程创建和销毁其实是有开销的,只是增加了用户体验而已)
- EffectiveC#5--始终提供ToString()
- 关于反射中获取Fields,method,Construts简单介绍
- DDD理论学习系列——案例及目录
- Kth MIN-MAX 反演
- 在嵌入式开发中应该这样理解嵌入式C编程
- 动态规划Dynamic Programming
- 安装CentOS 7(转)
- 学Java的第17天。呃。。。今天有点奇葩
- python调用c的方法
- 利用jQuery实现回收站删除效果
- 图片添加热点MAP之后连接无效的解决方法
- 安装CentOS桌面环境
- 如何让.gitignore文件生效
- background-image大小和位置的设置
- java虚拟机内存管理
- HDevelop数据类型
- JAVA图像缩放处理
热门文章
- C++工程师养成 每日一题(vector使用)
- 『数 变进制状压dp』
- linux启动tomcat很久或者很慢Tomcat启动时卡在“INFO: Deploying web application directory ......”的解决方法
- C# 创建json传输格式的http请求
- TRIO-basic指令--CAM
- Ubuntu 挂载硬盘命令介绍
- Spring Boot 企业级应用开发实战 刘伟东-2018年3月第一版
- 使用input的file进行上传进行预览
- SpringCloud高并发性能优化
- Java深入学习(2):并发队列