2017-01-10 6 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) { 
     } 
    }; 

Однако, когда я загружаю мою страницу хром Dev инструменты дают мне ошибку говоря Cannot read property 'decomposeTextShadow' of undefined на линии, я добавил комментарий раньше в моем коде. Все идеи? Даже если я попробую decomposeBoxShadow:decomposer.decomposeTextShadow,

ответ

1

Кажется, что код содержится в строгой функции режима. В строгой функции this является undefined, если называется «нормально».

См. Self-references in object literal declarations для решения того, что, как я считаю, вы пытаетесь сделать.

Даже если я попробовать decomposeBoxShadow:decomposer.decomposeTextShadow

Вы пытаетесь получить доступ к decomposer.decomposeTextShadow во время инициализации самого объекта. Объект присваивается только decomposerпосле был создан. Поэтому во время создание объекта, decomposer все еще имеет значение undefined.

2

В вашем случае this не относится к объекту decomposer. Это undefined.

Смежные вопросы