function test(){
alert(this);
}
test();
this为何指向的是window,在函数体内不应该指向的是Functon么?
this指向它的调用者,test()相当于window.test();建议用console.log(this),别用alert,alert你是看不完整的this结构的,自然就没法分析。
说的太多是越说越不能理解,
test();这样执行严格来讲是window.test();这个意思,只是全局变量和全局方法可以省略window,既然test()是被window调用,你说this不指向window,还能指向谁?
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
函数定义并不涉及this的指向,由js函数提升,会看出,此时并不在意函数内执行什么操作。
只有函数执行,才会改变this,只要不涉及函数执行,this一律指向window(当然严格模式下指向undefined)。
这段函数执行时,没有明确的写是哪个对象调用改函数,其实与window.test()是等价的。
函数执行,this具体怎么指向,call,apply方法会改变this指向,找篇文章好好深入理解下吧^_^