主要是跟 this 有关系。
---------------------------------------------------------------------------------
关于this解释,可以参考https://zhuanlan.zhihu.com/p/23804247
摘录上述链接部分内容:
JS有三种函数调用形式:
func(p1,p2) //语法糖
等价于 func.call(undefined,p1,p2)
obj.child.method(p1,p2) //语法糖
等价于 obj.child.method.call(obj.child,p1,p2)
func.call(context,p1,p2) // 正常调用形式
this为call一个函数时,正常调用形式下,传递的第一个参数context。
浏览器有一条规则:如果你传的context是null或者undefined,那么window对象就是默认的context。
---------------------------------------------------------------------------------