我正面临一个问题,我不知道为什么。我将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
作为属性值?
答案 0 :(得分:0)
JavaScript对象属性可能无法从“for”或“Object.keys”
中隐藏和隐藏查看defineProperty方法https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty