1、es3/es5、es6中 this 的指向 >>
let factory = function () {
this.a = 'a';
this.b = 'b';
this.c = {
a: "a+",
//es3、es5中 this 指向该函数被调用时的对象
b: function f() {
return this.a;
}
}
};
//c对象调用的b(), 则 this 指向c对象
console.log(new factory().c.b()); //输出 a+
let factory = function () {
this.a = 'a';
this.b = 'b';
this.c = {
a: "a+",
//es6中 this 指向构造函数的实例
b: () => {
return this.a;
}
}
};
//this指向构造函数 new factory()的实例a
console.log(new factory().c.b()); //输出 a
2、块儿级作用域 >>
var a;
if(a){
let a=20;
}else{
let a=30;
}
//let声明的变量 只在 块{}内有效
console.log(a); //输出undefined
3、对数组的map、filter、reduce方法 >>
let data = [5, 10, 15, 20];
let rs = data
.map(value => value * 2)
.filter(value => value >= 20)
.reduce((accumulator, currentValue) => accumulator + currentValue);
//reduce为数组的累加器, 从左到右逐个累加, 返回总值
console.log(rs); //输出90
网友评论