当call/apply传的第一个参数为null/undefined的时候js函数内执行的上下文对象是什么呢?

如题;在js中我们都知道call/apply,还有比较少用的bind;传入的第一个参数都是改变函数当前上下文对象;call/apply区别在于传的参数不同,一个是已逗号分隔字符串,一个以数组形式。而bind和call几乎没差别只是将值返回。

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

当call/apply传的第一个参数为null/undefined的时候js函数内执行的上下文对象是什么呢?

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

当call/apply传的第一个参数为null/undefined的时候js函数内执行的上下文对象是什么呢?

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

上一篇:[Drools]JAVA规则引擎 -- Drools- 转http://blog.csdn.net/quzishen/article/details/6163012


下一篇:J2EE集群原理(摘录)