入坑ES6
1. 箭头函数
this 指向问题
const obj = {
name1: 'James 23',
getName: () => {
// this 指向window
console.log(this.name1)
},
getName2: function() {
// this 指向obj
console.log(this.name1)
},
getName3() {
// this 指向obj,等价与getName2
console.log(this.name1)
}
}
obj.getName()
obj.getName2()
obj.getName3()
this 指向函数执行环境
var obj = {
foo: function () { console.log(this.bar) },
bar: 1
};
var foo = obj.foo;
var bar = 2;
obj.foo() // 1
foo() // 2
obj.foo()是通过obj找到foo,所以就是在obj环境执行。一旦var foo = obj.foo,变量foo就直接指向函数本身,所以foo()就变成在全局环境执行