我正在尝试得到这样的东西:
// instead of having to write
a.b = 'c'; return a;
// i'd like to write
return a.b = 'c';
// but this will return a.b instead of a
// a (cumbersome) alternative is
return Object.defineProperty(a, 'b', {value: 'c',
enumerable: true,
writable: true,
configurable: true})
// or using a shorthand function
function set(target, property, value){
return Object.defineProperty(target, property, {value: value,
enumerable: true,
writable: true,
configurable: true});
}
return set(a, 'b', 'c');
我对重载 =
甚至 .
运算符的某种方式更感兴趣,但我不知道这是否可能或如何做到。
最佳答案
你不能这么做。
您可以编写一个简单的助手:
function set(target, property, value) {
target[property] = value;
return target;
}
关于javascript分配属性语句返回父对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19321458/