У меня есть конструктор в JavaScript, как это:Какие части классов JavaScript воссозданы в памяти при вызове `new`?
function Foo() {
var privateProperty = "goodbye";
this.publicProperty = "hello";
function privateMethod() {
return "Shhhhh";
}
this.publicMethod = function publicMethod() {
return "extroverted";
};
}
Foo.prototype.youCanSeeMe = "I'm out here";
Foo.prototype.typical = function typical() {
return "look at me out here";
};
var b = new Foo();
var c = new Foo();
В последней версии JavaScript двигатель v8, какие свойства моего класса копируются в память? Я имею в виду, есть ли сейчас две копии privateProperty
, publicProperty
, privateMethod
и т. Д. В памяти?
Если значение по умолчанию для памяти b
было 100 байт, будет ли размер памяти b
и c
равным 200 байтам? Чем больше, тем меньше?
мог бы вы привести некоторые источники этой информации? – zzzzBov
@elmalto Это потому, что конструктор является закрытием? –
@zzzzBov Это легко рассуждать; изменение прототипа впоследствии влияет на оба экземпляра, таким образом, он живет в собственной части памяти, а другие экземпляры ссылаются на него. –