2017-01-10 86 views
0

財產「decomposeTextShadow」我有以下對象:無法讀取的不確定

var decomposer = { 
     decomposeColor: function(color) { 

     }, 
     removeColor: function(code) { 
     }, 
     decomposeTextShadow: function(code) { 

     }, 

     //This line causes an error 
     decomposeBoxShadow:this.decomposeTextShadow, 
     decomposeRadius: function(code) { 
     } 
    }; 

然而,當我打開我的網頁Chrome瀏覽器開發工具給我一個錯誤在該行稱 Cannot read property 'decomposeTextShadow' of undefined ,我已經添加了一條評論之前在我的code.Any想法? 即使我嘗試decomposeBoxShadow:decomposer.decomposeTextShadow,

回答

1

看起來代碼包含在嚴格模式函數中。如果調用「正常」,在一個嚴格的函數中,thisundefined

請參閱Self-references in object literal declarations瞭解我相信您正在嘗試做什麼的解決方案。

即使我嘗試decomposeBoxShadow:decomposer.decomposeTextShadow

您正在嘗試的對象本身的初始化期間訪問decomposer.decomposeTextShadow。該對象僅在創建後才分配給decomposer。因此,在期間創建的對象decomposer仍然具有值undefined

2

在你的情況下this不參考decomposer對象。它是undefined