繁体   English   中英

无法定义属性“ _getObservable”:对象不可扩展

[英]Cannot define property '_getObservable': object is not extensible

我面临一个问题,我不确定为什么。 我将StorageFile设置为javascript对象的属性:

var myFile = MethodThatReturnsAFile();
var obj = { file: myFile };

问题出在我需要“克隆”该对象时。 基于很多关于此问题的答案,我开始使用此方法克隆对象:

    for (var pty in obj)
        if (obj.hasOwnProperty(pty) && target[pty] !== obj[pty])
            target[pty] = obj[pty];    

其中obj是我当前的对象,而target是我要创建的对象,在我的情况下是var target = {}
每当obj在其属性之一中具有StorageFile时,它几乎每次都能正常工作。 (我从主题中得到消息)

我无法理解Storagefile是密封的,无法扩展,但是为什么有人( WinJS? )试图扩展它? 我应该更改clone方法还是不应该将StorageFile作为属性值?

JavaScript对象属性可能无法枚举,并且对于'for'或'Object.keys'隐藏

查看defineProperty方法https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM