2014-11-25 71 views
1

我正面临一个问题,我不知道为什么。我设置一个StorageFile作为一个JavaScript对象的属性:无法定义属性'_getObservable':对象不可扩展

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作为属性值?

回答

0

JavaScript对象的属性可能是不可枚举和隐藏“的”或“Object.keys”

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

+0

我知道'defineProperty'是如何工作的,但我不是一个调用它... WinJS调用它,因此我的应用程序崩溃。我想知道的是为了让我的应用程序在defineProperty被调用时不会崩溃,我该怎么做 – sebagomez 2014-11-25 15:52:24

相关问题