1

有没有办法让 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
4

1 回答 1

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
于 2014-04-10T08:32:14.880 回答