this在JavaScript中有着广泛的应用,无论是普通函数、还是构造函数,都可以看到this的影子。初学者非常容易误解了this的含义,现在博主使用一些简洁的例子,来将this的用法展现出来。
1. 一般函数中this表示全局对象
function demo() {
console.log(
this.x);
}
var x =
1;
demo();
2. 作为方法调用,this表示上一级对象
function demo() {
console.log(
this.x)
}
var obj = {
x:
1,
demo: demo,
};
obj.demo();
3. 作为构造函数调用,this表示对象实例
function demo() {
this.x =
1;
}
var x =
2;
var obj =
new demo();
console.log(obj.x);
4. 表示被绑定的内容
function demo() {
console.log(
this.x);
}
var obj = {
x:
2,
};
var x =
1;
demo.call(obj);
在ES6中,使用 => 箭头可以表示代替使用 var self = this 或者 bind(this) 的做法。在一定程度上面降低了this的理解难度,期待更多新的语法可以彻底解决这些问题。
转载请注明原文地址: https://ju.6miu.com/read-18357.html