0

Consider the following code snippet:

function C1() {
    // private variable in the constructor
    a = 1;
}

C1.prototype.f1 = function() {
console.log( "a=" +  a );
}

C1.prototype.f2 = function() {
    a = 2;
    process.nextTick( this.f1 );
}

o = new C1();
o.f1();
o.f2();

The output observed is:

a=1
a=2

I thought private variables aren't accessible outside of the Constructor function ?

1

1 Answer 1

1

In JavaScript, a variable declared without the "var" keyword has global scope. In the browser this is achieved by attaching the variable to the window object (not sure how it works in Node). If you would like a private variable accessible to your object, try a closure around the object constructor and prototype declaration.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.