js中当call或者apply传入的第一个参数是null/undefined时,js函数内执行的上下文环境是什么?

在js中我们都知道call/apply,还有比较少用的bind;传入的第一个参数都是改变函数当前上下文对象;

call/apply区别在于传的参数不同,一个是已逗号分隔字符串,一个以数组形式。而bind和call几乎没差别只是将值返回。

可是当我们将null/undefined作为值传进去的时候呢?居然得到的是window,当前js运行环境的全局对象。

js中当call或者apply传入的第一个参数是null/undefined时,js函数内执行的上下文环境是什么?

 这其实在es5中就有解释的:传入null/undefined的时候将执行js全局对象浏览器中是window,其他环境是global。这样就解释得通了。

js中当call或者apply传入的第一个参数是null/undefined时,js函数内执行的上下文环境是什么?

参考:https://www.cnblogs.com/leungUwah/p/6014079.html

参考:https://www.cnblogs.com/snandy/archive/2012/03/01/2373243.html

js中当call或者apply传入的第一个参数是null/undefined时,js函数内执行的上下文环境是什么?

上一篇:关于Store Apps


下一篇:插入节点element.appendChild(要插入的节点),element.insertBefore(要插入的节点,参考节点)案例