js 的上下文
可以理解为上下文对象,表示当前代码执行时所处的环境。即是this变量所指代的对象;例子:
function Test() { console.log(this); } Test(); //window new Test();//Object
在执行Test()时,此时的上下文对象是window,即Javascript的全局对象!在执行new Test() 时新建了一个Object,此时执行Test函数的上下文对象就是Object。再看下面例子
function newObj(Fun,arguments) { var o = {}; if (Fun && typeof Fun === "function") { o.__proto__ = Fun.prototype; Fun.apply(o, arguments); return o; } }
这主要是new函数操作的模拟,可以看到Fun.apply(o,arguments);这一步,apply的作用是指定执行Fun函数并制定其上下文为o,输入参数为arguments对象。所以new Test()得到的结果是Object。