0
學習JavaScript,我想寫一個簡單的封閉,封裝一個變量,我可以設置或獲取。 這裏是行爲我的目標進行具體的例子:Getter和setter像一個封閉的行爲
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?
}
我按照過去的代碼註釋的問題,我怎麼回場的這個確切的實例?