Синонимы
Можно сначала создать обозначение, например:
dd = {x: 5, y: 3};
а затем использовать объект dd в качестве значения в одном из элементов другого объекта:
kk = {a: dd, b: 44};
результат будет таким же, как если бы мы сразу создали объект, не прибегая к промежуточному имени dd:
kk = {a: {x: 5, y: 3}, b: 44};
Объект dd = {x: 5, y: 3} в результате создания объекта kk получает кроме имени dd ещё одно имя: kk.a. Таким образом у одного объекта {x: 5, y: 3} оказывается два имени: dd и kk.a. Эти два имени являются синонимами, т.е. являются взаимозаменяемыми в любом контексте. Возможность создавать объекты в несколько этапов особенно удобна при создании объектов, среди элементов которого имеются функции (такие элементы часто называют методами). Давайте создадим в редакторе простую функцию:
ff = function(x, y){
return(x + y);
}
а затем создадим объект:
dd = {x: ff, y: 44};
Теперь мы можем применить функцию ff к произольной паре чисел и посмотреть результат:
show(ff(7, 8));
Тот же самый результат получится, если мы к этим же числам применим функцию dd.x:
show(dd.x(7, 8));
Неудивительно, ведь ff и dd.x синонимы.
dd = {x: 5, y: 3};
а затем использовать объект dd в качестве значения в одном из элементов другого объекта:
kk = {a: dd, b: 44};
результат будет таким же, как если бы мы сразу создали объект, не прибегая к промежуточному имени dd:
kk = {a: {x: 5, y: 3}, b: 44};
Объект dd = {x: 5, y: 3} в результате создания объекта kk получает кроме имени dd ещё одно имя: kk.a. Таким образом у одного объекта {x: 5, y: 3} оказывается два имени: dd и kk.a. Эти два имени являются синонимами, т.е. являются взаимозаменяемыми в любом контексте. Возможность создавать объекты в несколько этапов особенно удобна при создании объектов, среди элементов которого имеются функции (такие элементы часто называют методами). Давайте создадим в редакторе простую функцию:
ff = function(x, y){
return(x + y);
}
а затем создадим объект:
dd = {x: ff, y: 44};
Теперь мы можем применить функцию ff к произольной паре чисел и посмотреть результат:
show(ff(7, 8));
Тот же самый результат получится, если мы к этим же числам применим функцию dd.x:
show(dd.x(7, 8));
Неудивительно, ведь ff и dd.x синонимы.