AlexPTS
@AlexPTS
Full stack веб разработчик

Можно ли определить вложенное свойство объекта через литерал {} в js

В JavaScript можно создавать объекты через литерал {}.
Возможно ли через литерал описать такую структуру объекта и если да, то как?

var o = {};
o.level1 = function(){ ...};
o.level1.sub = 2;
  • Вопрос задан
  • 3636 просмотров
Пригласить эксперта
Ответы на вопрос 6
titulusdesiderio
@titulusdesiderio
IT-специалист
видимо вас на гугле забанили.
javascript.ru
Ответ написан
DIvan4ik
@DIvan4ik
Web-мастер с 3-х летним стажем
 var o = {
     level1:(function(){
         var f = function(){};
         f.sub = 2;
         return f;
     }())
 }    
Ответ написан
@quakin
Так:
var o = {
	level1 : function(){},
	level2 : {sub:2}
};
Ответ написан
DIvan4ik
@DIvan4ik
Web-мастер с 3-х летним стажем
<удалено>
Ответ написан
Комментировать
@mayorovp
function callable(dict) {
  var run = dict.$run;
  foreach (var k in dict)
    run[k] = dict[k];
  return run;
}

var o = {
  level1: callable({
    $run: function() {...},
    sub: 2
  })
};

Как мне кажется, получилось достаточно похоже на литерал.
Ответ написан
Комментировать
В вашем варианте возможны 2 варианта, или создание функции со свойствами через анонимный scoop, или ака Object.extend: underscore
var obj = {
    level1: _.extend(function() {}, {
         sub: 2
    })
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы