Javascipt的this指向
一、this是什么?
先说结论,this是用于指代当前执行上下文的对象
二、this指向的是什么
1.当函数作为一个对象的属性被调用时,指向的是最后调用函数的对象
代码如下(示例):
var obj = {
name:'Joe',
sayName: function(){
console.log(this);
}
}
obj.sayName();obj
var obj = {
name:"Joe",
sayName: function(){
console.log(this);
}
}
var obj2 = {
name:'Joi',
sayName: obj.sayName,
};
obj2.sayName();
//输出:Joi
2.当函数仅仅作为函数执行时,this指向的是window
function demo(){
console.log(this);
}
demo();
//输出:Window
3.ES6箭头函数没有自己的this,箭头函数中的this指向外部函数的this
function outer(){
var name = 'Joe';
var inner = ()=>console.log(this.name);
inner();
}
outer();
//输出:window
4.立即执行函数的this指向window
(function(){
console.log(this);
}())
//输出:Window