Это будет сложный вопрос. Имея конструктор:Что нового?
var Constructor = new function(){
this.a = 'a';
this.b = 'b';
}
мы можем создать объект:
var obj = new Constructor();
это в конструкторе относится к окну, но при вызове нового 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 работает в низком уровне? Что именно делается под номером ?
и что точка 'новой функции()'? –
@ MatíasFidemraizer: [Это ошибка] (https://stackoverflow.com/questions/10406552/is-it-right-to-think-of-a-javascript-function-expression-that-uses-the-new- key) – Bergi
* «теперь' this' выясняет область действия функции, в которой вы находитесь * * Вы, кажется, путаете область и «это». На самом деле они не имеют ничего общего друг с другом (кроме того, что в каждой среде (области), существует привязка 'this'). –