我对this的理解
这里谈谈我对this的一些比较浅的理解
this是指向当前的对象,那就是说,必须是对象里面才拥有this,如果不是对象,那this 是指向window对象
例子:
function a(){
console.log(this)
}
a()
输出的是window对象。
function a(){
this.aa = function(){
console.log(this)
}
}
var aa = new a()
aa.aa()
输出的是a()这个实例化对象, 也就是说函数体经过实例化后,那么久产生了对象,这样运行aa.aa()就是输出实例化后的对象,this就是指向该函数实例化对象了。
var b = function(){
console.log(this)
}
b()
同样b不是一个对象,所以它里面的this指向的是window
但是实例化后,就成为一个对象
var b = function(){
this.bb = function(){
console.log(this)
}
}
var bb = new b()
bb.bb()
输出的就是b{bb:function(......)}对象,this指向b{bb:function(......)}对象
再来一个例子,定义一个单实例对象,
var c = {a:"", b:"", c: function(){console.log(this)}}
c.c()
输出的是c={....}这个对象