Here's what you are looking for:
function sample() {
function chart() {
this.var1 = null;
this.var2 = null;
}
chart.output = function (_) {
console.log("output: ", var1, var2);
return chart;
};
chart.changeVar1 = function (_) {
if (!arguments.length) return var1;
var1 = _;
return chart;
};
chart.changeVar2 = function (_) {
if (!arguments.length) return var2;
var2 = _;
return chart;
};
return chart;
}
new sample().changeVar1(13).changeVar2(1986).output(); // output: 13 1986
Since this approach uses method chaining, every function call returns the instance using which you can further call other methods of the class.