Posted at

JavaScriptで引数の有無でsetter/getterを切り替えるのはアリでしょうか

More than 5 years have passed since last update.

つまり、setXxx/getXxxを作らずに、xxx()/xxx(arg)にしてしまう感じ。


example.js

var Hoge = (function() {

var prop;
return function() {
var that = {};
that.prop = function() {
if (arguments.length > 0)
prop = arguments[0];
else
return prop;
};
return that;
};
})();

使う側はこんな感じ


use.js

var hoge = new Hoge();

hoge.prop(100);
console.log(hoge.prop()); // output 100

僕が知らないだけで、これって結構常套句だったりしますでしょうか?