переменные «var», переменные «this» и «глобальные» переменные -внутри конструктора JavaScript

После моего последнего вопроса этот для меня более точен:

пример:

function Foo() {
    this.bla = 1;
    var blabla = 10;
    blablabla = 100;
    this.getblabla = function () { 
        return blabla; // exposes blabla outside
    }
}
foo = new Foo();

что я понимаю сейчас:

this.bla = 1;     // will become an attribute of every instance of FOO.
var blabla = 10;  // will become a local variable of Foo(will **not** become an attribute of every instance of FOO), which could be accessed by any instance of FOO - only if there's a method like "this.getBlabla". that's a "closer" ?
blablabla = 100;  // will define a **new** (or change if exist) global(window) variable.

Я правильно понимаю?

Также -, если я включу var blabla = 10;и функцию getblabla, которая использует ее в подрядчике, то для каждого экземпляра Foo ("foo"... )будет сохранена функция подрядчика Foo в памяти, которая включает эту "частную" переменную. или это будет та же функция Foo, что и место для частных переменных -для ВСЕХ экземпляров (, например «foo» )Foo?

5
задан blasteralfred Ψ 14 August 2012 в 17:01
поделиться