Javascript 纽卡斯尔到底在做什么?

Javascript 纽卡斯尔到底在做什么?,javascript,prototype,proto,Javascript,Prototype,Proto,这将是一个棘手的问题。 有建造师的: var Constructor = new function(){ this.a = 'a'; this.b = 'b'; } 我们可以创建一个对象: var obj = new Constructor(); 这个在构造函数中指的是窗口,但调用new Constructor()时,一些魔法正在发挥作用:现在这个正在找出它所在的函数的作用域(它到底是如何工作的?),并只将该作用域分配给obj返回它。 所以基本上它是在做一些事情,比如: var Constr

这将是一个棘手的问题。 有建造师的:

var Constructor = new function(){
this.a = 'a';
this.b = 'b';
}
我们可以创建一个对象:

var obj = new Constructor();
这个在构造函数中指的是窗口,但调用new Constructor()时,一些魔法正在发挥作用:现在这个正在找出它所在的函数的作用域(它到底是如何工作的?),并只将该作用域分配给obj返回它。 所以基本上它是在做一些事情,比如:

var Constructor = new function(){
var this = {some object having variables needed for every object (like __proto__)}    
this.a = 'a';
this.b = 'b';
return this;
}
有谁能告诉我,在JS中创建新对象的机制是如何在低级别工作的?调用new时,下面到底在做什么?

“new SomeFunction()”是创建一个新对象,并将该对象作为“this”调用SomeFunction

考虑这一点:

function SomeFunction() {
    this.hello = "Hello, world";
}
var myObj = new SomeFunction();
myObj.hello; // "Hello, world"

var myObj2 = {};
SomeFunction.call(myObj2);
myObj2.hello; // "Hello, world"

newfunction()
的意义是什么?@MatíasFidemraizer:“现在
这个
正在找出它所在的函数的作用域”你似乎混淆了作用域和
这个
。它们实际上互不相关(除了每个环境(范围)中的绑定之外,还有一个绑定
this
)。此外: