解析器(浏览器)在调用函数的时候都会向函数内部传递一个隐含的参数
这个银行的参数就是this,this指向的是一个对象,这个对象成为函数的上下文对象
根据函数的调用方式不同,this会指向不同的对象:
1. 以函数的形式调用,this永远都是window
2. 以方法的形式调用,this就是调用方法的那个对象
var name='si'
function fun(){
// console.log(name) //'si'
console.log(this.name)
}
fun(); //this->window
var obj = {
name:'san',
getName:fun
}
obj.getName(); //this->obj
1. 箭头函数没有自己的this, 箭头函数的this不是调用的时候决定的,而是在定义的时候所处的对象就是它的this
2. 判断方法:
看箭头函数的外层是否有函数:
如果有,外层函数的this就是内部箭头函数的this
如果没有,则this只window
let obj = {
name:'arrow',
getName: function(){
btn.onclick = () =>{
console.log(this);
}
}
}
obj.getName(); // this->obj
let obj = {
name:'arrow',
getName:() =>{
btn.onclick = () =>{
console.log(this);
}
}
}
obj.getName(); // this->window
箭头函数 this
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...