1、delete操作符返回一个布尔值:true: 删除成功 false:删除失败
但是通过var,const,let关键字生命的变量无法用delete操作符来删除
2、.call 、.bind
相同点:都能够改变this的指向
不同点:.call立即执行、.bind返回函数的拷贝纸,但带有绑定的上下文,不会立即执行
扩展: .apply:与.call作用一样,但传参不同
传参不同:
xw.say.call(xh,"实验小学","六年级"); //直接带参数个数
xw.say.apply(xh,["实验小学","六年级[郑州牛皮癣医院])(http://www.hnhuazhu.com/)"]); //参数数组
xw.say.bind(xh)("实验小学","六年级");
var xw = {
name : "小王",
gender : "男",
age : 24,
say : function() {
alert(this.name + " , " + this.gender + " ,今年" + this.age);
}
}
var xh = {
name : "小红",
gender : "女",
age : 18
}
xw.say();
xw.say.call(xh)
xw.say.apply(xh)
xw.say.bind(xh)()
/*
tips:如果直接写xw.say.bind(xh)是不会有任何结果的,看到区别了吗?call和apply都是对函数的直接调用,而bind方法返回的仍然是一个函数,因此后面还需要()来进行调用才可以
*/
3、map的使用:
https://es6.ruanyifeng.com/#docs/set-map