在上面的例子中this从来就没有指过Test,而一直都是WScript的实例。 如果我们写一个语句:var test = new Test(); 这时Test里的this就是指的Test的一个实例了,这个实例中如果要使用Global的变量,Lostinet给出的是一个方法。 不过最简单还是把global传入对象,这样定义Test: function Test(global) { // ... } 然后这样创建实例:var test = new Test(this); 就可以在Test实例中使用global的对象和属性了。
是不是这样,在new的实例中,this就指实例,否则都指WScript?如果这样的话,换了脚本引擎,是不是情况又会不同?这个是标准吗?
new constructor[(arguments)]; new 运算符执行下面的任务: ·创建一个没有成员的对象。 ·为那个对象调用构造函数,传递一个指针给新创建的对象作为 this 指针。 ·然后构造函数根据传递给它的参数初始化该对象。