有没有更快的方法(更少的代码行)来定义具有相同功能但名称不同的这两个属性?
Object.defineProperties(this, {
"position": {
get: function() {
return "get";
},
set: function() {
return "set";
}
},
"pos": {
get: function() {
return "get";
},
set: function() {
return "set";
}
}
});
有几种方法,具体取决于您的意思。
这是带有一些示例的jsFiddle:https ://jsfiddle.net/4o39yxmk/1/
var obj = {};
var props = {
get: function() {
return "get";
},
set: function(value) {
console.log(value);
return "set";
}
};
Object.defineProperties(obj, {
"position": props,
"pos": props
});
Object.defineProperty(obj, 'anotherPos', Object.getOwnPropertyDescriptor(obj, 'position'));
// trigger the setter
obj.position = 'myValuePosition';
obj.pos = 'myValuePos';
obj.anotherPos = 'myValueAnotherPos';
// trigger the getter
console.log(obj.position);
console.log(obj.pos);
console.log(obj.anotherPos);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句