Javascript中new操作符的探究
Javascript 中有一个很有意思的 new 操作符,在《Javascript 语言精粹》(Javascript:The Good Parts)中,new 被列为了不推荐的操作符。下面对于 new 的使用进行一些探究。 先来一段代码: function test() { var foo1 = new function () { this.i = 1; } var foo2 = function () { this.i = 2; } M.dis(foo1.i); //1 M.dis(foo2.i); //undefined M.dis(this.i); //undefined foo2(); M.dis(foo2.i); //undefined M.dis(this.i); //2 M.dis(foo1.prototype); //undefined M.dis(foo2.prototype); //[object Object] } *代码中的M.dis() = document.writeln() 上面代码很能说明使用 new 操作符和不使用 new 操作符的区别。 以下是本人根据以上结果对使用 new 操作符和不使用 new 操作符的一些理解。 使用 new 操作符函数会被立刻执行。不使用 new 操作符,函数会在被调用时执行。 foo1 在定义的时候就被执行了,所以输出foo1.i = 1,而foo2在定义时未被执行,所以输出foo2的结果为undefined, foo2中var foo2 = function () {}的定义形式和 function foo2 () {}的效果是一样的。 ...