Is this a good way to create a Javascript object?
If you want to access the createQuestion function you could simply do the following

this.createQuestion = function(index){ 
    // your code
};


You can create public and private variables in a object. The easiest example I can give for this is using the following code.

function someObject(publicInput, privateInput) {

    this.public = publicInput;

    var private = privateInput;

    this.getPrivate = function(){
        return private;
    }
}

var newObject = new someObject(true, false);

console.log(newObject.public); // returns true
console.log(newObject.private); // returns undefined
console.log(newObject.getPrivate()); // returns false


As you can see the private variable can only be accessed from inside the object, which is why I've added a getPrivate() function to return this variable.