0
JavaScriptを学んで、私は設定または取得できる変数をカプセル化する単純なクロージャを作成しようとしています。ここ iは、具体的を目指しています行動の例です。1つのクロージャーでゲッターとセッターのような振る舞い
let x = Field(1) //set value to 1, return the closure itself
x(2) //set value field to 2
x() //returns 2
x(3) //set value to 3
x() //returns 3
は、上記の操作を行うと、同じ正確な構文を維持することが可能である、私は閉鎖自体を返す作る必要があることを想像しますが、私はそれをしようとしたとき明らかに値フィールドが失われ、新しいインスタンスが作成されました。
/**
* if v is passed it functions like a setter
* if no arguments passed it functions like a getter
* @param {*} [v]
*/
const Field = function(v){
let value
if (arguments.length === 1) { //SET
value = v;
} else if (arguments.length === 0) { //GET
return value;
} else {
throw 'Field can have one or no arg'
}
return Field //how to i return this exact instance of Field?
}
フィールドの正確なインスタンスを返すにはどうすればよいですか?