new function

先看看熟悉一点的写法:

var a = new function Person(abc) {
    this.name = "xgs";
}
//很好理解,使用Person构造函数创建了一个对象是吧。

new function(){} 与 new Function()的区别

var a = new function() {
    this.name = "zl";
}
//自然,new function(){}就是用匿名函数创建了一个对象了,
//注意这个对象并不是函数(Function.prototype.isPrototypeOf(a);//false),
//这也是new function(){}与new Function(){}的区别

奇怪

var a = new function Xgs() {
    this.name = "zl";
}
Xgs; //undefined, 为什么呢?
a.constructor; // function Xgs() { this.name = "zl"; }

有趣

document.body.onclick = {
    return function() {
        alert("hah");
    }
};//不可以添加事件,报错
document.body.onclick = new function() {
    return function() {
        alert("hah");
    }
};//可以添加事件,这个东西不错

你可能感兴趣的:(new function)