如何在构造时创建不可枚举的属性?
function pp_urlfield( object ) {}
pp_urlfield.prototype = Object.create( Object.prototype, {
type_internal: {
writable: true,
configurable: true,
enumerable: false,
value: ""
},
type: {
get: function() {
return this.type_internal;
},
set: function( value ) {
this.type_internal = value;
}
}
} );
如果我构造此对象并分配成员“type”,则分配“this.type_internal = value”会创建一个本地且不可枚举的变量:
var a = new pp_urlfield;
a.type = 1;
//Returns ["type_internal"]
Object.keys(a);
我通过替换 this.type_internal = value 找到了部分解决方案:
Object.defineProperty(this, "type_internal", { value: value, enumerable: false });
但我认为必须有更好的解决方案。(我不想使用任何框架,例如原型)