<!DOCTYPE html><html> <head> <meta charset="utf-8"> </head> <body> <div id="example"></div> <script type="text/javascript"> function add(){ var ss = '3'; function odd(){ console.log(this); return '1'; } odd(); } add(); </script> </body></html>为什么这里的this 指向 window ? 我是看到作用域链的时候,实际在调用odd方法时创建了上下文,this为什么指向window?
1 回答

慕哥6287543
TA贡献1831条经验 获得超10个赞
首先要清楚 odd
并不是一个方法,只有当函数作为对象的属性调用时,才称之为方法
//方法o.add();//函数add();
当函数作为方法被调用时
this
的指向是调用函数的对象(除非显式的被修改)当函数直接被调用时
this
指向window
(在严格模式中指向undefined
)
补充:
当函数作为构造函数被调用时(使用
new
),this
指向一个新对象,这个新对象的原型指向构造函数的prototype
属性
//构造函数 new Add();
添加回答
举报
0/150
提交
取消