在赋值原型prototype的时候使用function立即执行的表达式来赋值,通过return暴露出想要给外部调用的方法,以达到public/private效果。
function Calculator(){
this.num = 102;
}
Calculator.prototype = function () {
add = function (x, y) {
console.log(subtract(2,1))
return x + y + this.num;
},
subtract = function (x, y) {
return x - y;
}
return {
add: add,
sub: subtract
}
} ();
var calculator = new Calculator();
console.log(calculator.add(1,2))
console.log(calculator.sub(1,2))