Доступ к личному атрибуту Javascript ООП - PullRequest
0 голосов
/ 20 марта 2012

Я хочу знать, как создать приватный атрибут в классе Javascript.Я попробовал это:

function Class1(selector)
{
    //calling the constructor
    Constructor();

    //private attribute
    var $container = null;

    function Constructor()
    {
        $container = $(selector);

        //Shows that container is an object
        alert($container);
    }

    function Foo()
    {
         //Shows that container is null
         alert($container);
    }

    result {
        Foo : Foo
    };
}

Я предполагал, что в «Конструкторе» он создает новую переменную $ container и назначает ей объект.Я хочу знать, как я должен присвоить значение атрибуту $ container объекта, а не локальной переменной в функции Constructor.

Ответы [ 2 ]

1 голос
/ 20 марта 2012

это потому, что вы сначала набираете Constructor(), а после этого назначаете null на $container

. Если вы переключитесь, вы получите желаемый результат:

http://jsfiddle.net/R8RG5/

0 голосов
/ 20 марта 2012
function Class1(selector) {

    var container = null; //private attribute
    constructor(); //calling the constructor

    function constructor() {
        container = $(selector);
        console.log($container); //Shows that container is an object
    }

    function foo() {
         console.log(container); //Shows that container is null
    }

    result { Foo : foo };
}

, например, red-X уже сказал: вы должны выполнить конструктор после инициализации переменной контейнера.

В моем примере: это лучший способ использовать console.log для отладки..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...