如果函数处在非严格模式下,且thisArg的值为null或者undefined,则调用时函数内部的this指向window对象

发布时间 2023-11-13 00:22:28作者: 龙陌

执行以下程序,输出结果为()

function a(){
  console.log(this);
} 
a.call(null);

window

function.call(thisArg,args1,args2...)可以调用函数function,并且让函数内部的this指向thisArg,同时传递args1,args2等参数。
如果函数处在非严格模式下,且thisArg的值为null或者undefined,则调用时函数内部的this指向window对象

call继承,对象冒充,因为传入是null或者undefind和没传一样,所以还是全局的window

call/apply用来改变函数的执行上下文(this),它们的第一个参数thisArg是个对象,即作为函数内的this。
有两种情况需要注意,传null或undefined时,将是JS执行环境的全局变量。浏览器中是window,其它环境(如node)则是global。
https://www.cnblogs.com/snandy/archive/2012/03/01/2373243.html