【发布时间】:2017-05-10 21:00:14
【问题描述】:
我想让一个属性要么可调用,要么不可调用。比如:
function Test () {
var obj = { someString: 'here is text' };
Object.defineProperty(obj, 'string', {
get: function() {
return obj.someString;
},
set: function() {
return function(val) {
obj.someString = val;
}
}
});
return obj;
}
var test = new Test();
我可以这样做:
test.string // initially returns 'here is text'
test.string('new text here') // sets obj.someString to 'new text here'
test.string // returns 'next text here'
上面的代码目前没有按照我想要的方式运行。无论如何在JavaScript中做这样的事情吗?是否使用Object.defineProperty
【问题讨论】:
-
这种行为的用例是什么?
-
@shambalambala 我在这里提出了一个更好的问题:stackoverflow.com/questions/43923053/…
标签: javascript function defineproperty