パブリック セッター/ゲッター関数を持つプライベート変数を持つクラスがあります。
function Circle(rad) {
var r = rad;
this.radius = function(rad) {
if(!arguments.length) return r;
r = rad;
return this;
}
}
var shape = new Circle(10);
console.log( shape.radius() ); // 10
shape.r = 50;
console.log( shape.radius() ); // 10
を使用してこれを複製するにはどうすればよいObject.prototype
ですか? または、代わりにクロージャーを使用したいのはObject.prototype
いつですか?これは私が思いついた最も近いものですが、ご覧のとおり、プロパティを直接変更できます。
function Circle(r) {
this.r = r;
}
Circle.prototype.radius = function(r) {
if(!arguments.length) return this.r;
this.r = r;
return this;
};
var shape = new Circle(10);
console.log( shape.radius() ); // 10
shape.r = 50;
console.log( shape.radius() ); // 50