在标准函数中,thise引用的是把函数当成方法调用的上下文对象,这时候通常称其为this值(在网页的全局上下文中调用函数时,this指向windows )。
定义在全局上下文中的函数sayColor()引用了this对象。函数被调用时才能确定。如果在全局上下文中调用sayColor(),这结果会输出"red",因为this指向window,而this . color相当于window .color 。而在把sayColor()赋值给o之后再调用o.sayColor(), this会指向o,即this.color相当于o.color,所以会显示"blue"。
<script type="text/javascript">
window.color = 'red';
let o = {
color:'blue'
};
function sayColor() {
console.log(this.color);
}
sayColor();
o.sayColor = sayColor;
o.sayColor();
</script>
![在这里插入图片描述](https://img-blog.csdnimg.cn/2051bd26624d4a70b54ee6c92177ade0.png)