2014-11-25 45 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