Blog
Blog copied to clipboard
几行代码理解this
- 构造函数和
this
function F() {
this.a = 'a'
this.c = function () {
console.log(this)
}
}
var f = new F()
f.c()
f.c()输出的this指向构造器F的实例f, f是一个对象,即:{a: "a", c: ƒ()}。那么下面几个示例就好理解了。
function F() {
this.a = 'a'
this.c = function () {
console.log(this.a)
}
}
var f = new F()
var c = f.c
f.c() // a
c() // undefined,this指向window
function F() {
this.a = 'a'
// 使用箭头函数绑定this
this.c = () => {
console.log(this.a)
}
}
var f = new F()
var c = f.c
f.c() // a
c() // a
var foo = {
bar: function () {
alert(this);
}
};
foo.bar();
(foo.bar)();
(foo.bar = foo.bar)();
(false || foo.bar)();
(foo.bar, foo.bar)();
补充几个加强理解😂
你敢在业务里写后三种吗😏 @jawil
业务是业务,学习是学习,学习深了对业务代码都一目了然😏