<!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?
首先要清楚
odd
并不是一个方法,只有当函数作为对象的属性调用时,才称之为方法当函数作为方法被调用时
this
的指向是调用函数的对象(除非显式的被修改)当函数直接被调用时
this
指向window
(在严格模式中指向undefined
)补充:
当函数作为构造函数被调用时(使用
new
),this
指向一个新对象,这个新对象的原型指向构造函数的prototype
属性