TypeScript
class Book
{
public author: string;
}
// Шаг 1.
var book1 = new Book();
book1.author = "Hello 11111";
// Шаг 2.
var book3 = {book1};
book3.book1.author = "Hello 33333";
В отладке
Visual Studio Code видим что в конце программы:
book3 это объект со свойством {book1 = class
Book { author = "Hello 33333" }}
book1 это class
Book { author = "
Hello 33333" }
На заметку!
Видим что
book1 поменялся
Шаг 1.
TypeScript
var book1 = new Book();
Выделили память для класса
Book
Переменная
book1 содержит class
Book
book1 это class Book { author = "" }
TypeScript
book1.author = "Hello 11111";
поменяли
author
book1 это class Book { author = "Hello 11111" }
Шаг 2.
TypeScript
var book3 = {book1};
Переменная
book3 это объект свойств.
В отладке
Visual Studio Code мы видим, что
book3 это объект со свойством {book1 = class
Book { author = "Hello 11111" }}
Свойство
book1 содержит ссылку на переменную
book1.
TypeScript
book3.book1.author = "Hello 33333";
Когда мы меняем book3.book1.author = "Hello 33333";
то автоматически меняется
author в
book1
то есть становится так:
book1 это class Book { author = "Hello 33333" }
book3 видим в отладке что это {book1 = class
Book { author = "Hello 33333" }}