首页 > 关于this的一些疑惑

关于this的一些疑惑

function test(){
    alert(this);
}
test();

this为何指向的是window,在函数体内不应该指向的是Functon么?


JavaScript中的this指向是个值得深究的问题,不是一句话就能解释清楚的,你可以看看这篇文章深入浅出 JavaScript 中的 this


this指向它的调用者,test()相当于window.test();建议用console.log(this),别用alert,alert你是看不完整的this结构的,自然就没法分析。


执行环境里的this


函数定义并不涉及this的指向,由js函数提升,会看出,此时并不在意函数内执行什么操作。
只有函数执行,才会改变this,只要不涉及函数执行,this一律指向window(当然严格模式下指向undefined)。
这段函数执行时,没有明确的写是哪个对象调用改函数,其实与window.test()是等价的。
函数执行,this具体怎么指向,call,apply方法会改变this指向,找篇文章好好深入理解下吧^_^


说的太多是越说越不能理解,

test();这样执行严格来讲是window.test();这个意思,只是全局变量和全局方法可以省略window,既然test()是被window调用,你说this不指向window,还能指向谁?

【热门文章】
【热门文章】