有没有办法让kendo.observable为它返回的对象添加不可枚举的属性?例如:
var someObject = {};
someObject.x = 5;
Object.defineProperty(someObject, "someString", {
enumerable: false,
configurable: false,
writable: true
});
someObject.someString = "This is the base";
var foo = kendo.observable(someObject)
"x" in foo; //true
"someString" in someObject; //true
"someString" in foo; //false, but I want this to be true
答案 0 :(得分:0)
有趣的问题。实际上,当您从具有不可枚举的属性的对象中创建新的可观察对象时。初始化实际上会跳过以创建此类属性。
相反,您可以从常规对象中创建可观察对象(其中所有属性都是可枚举的),然后您可以将枚举属性更改为false。
这就是我的意思:
var bar = kendo.observable( { blabla : 123 });
Object.defineProperty(bar, 'blabla', { enumerable: false });
var isEnumerable = Object.getOwnPropertyDescriptor(bar, 'blabla').enumerable // returns false
'blabla' in bar //returns true