访问私有属性Javascript OOP

时间:2012-03-20 15:24:44

标签: javascript jquery oop

我想知道如何在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 个答案:

答案 0 :(得分:1)

这是因为您先拨打Constructor(),然后将null分配给$container

如果你转换它,你会得到所需的结果:

http://jsfiddle.net/R8RG5/

答案 1 :(得分:0)

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进行调试是一种更好的做法..