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

时间:2014-11-25 14:10:43

标签: javascript windows-runtime windows-phone winjs

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

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

当我需要'克隆'那个对象时,就会出现问题。基于这个问题的很多SO答案,我开始使用这种方法来克隆我的对象:

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

obj是我当前的对象,target是我要创建的对象,在我的情况下是var target = {}
它每次都很好'几乎',期待obj在其中一个属性中有StorageFile。 (我从主题中得到消息)

我unserstand Storagefile是密封的,不能扩展,但为什么谁(WinJS?)试图扩展呢?我应该更改clone方法,还是不应将StorageFile作为属性值?

1 个答案:

答案 0 :(得分:0)

JavaScript对象属性可能无法从“for”或“Object.keys”

中隐藏和隐藏

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