谁能解释这个简单的Javascript行为?

Nib*_*Pig 3 javascript

function cat() {

    this.Execute = new function() {

            alert('meow');

    }

}

var kitty = new cat();
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/PaDxk/1/

为什么这样做?我没有告诉它运行该功能.

SLa*_*aks 8

在编写时new function() { ... },您将创建一个匿名函数,然后立即在new表达式中调用它.
此表达式的结果是一个对象 - 由匿名函数创建的类的实例.

它相当于

var anonymous = function() { ... };
this.Execute = new anonymous;
Run Code Online (Sandbox Code Playgroud)