• При одалживании метода объект живет или выпиливается?

    rockon404
    @rockon404
    Frontend Developer
    Во-первых вы не отдалживаете метод, а получаете на него ссылку. Во-вторых ссылка на метод, в вашем случае, находится не в самом объекте, а является свойством прототипа. В-третьих в JavaScript объекты удаляются по принципу достижимости. Если на объект нет ни одной ссылки, то занимаемая им память будет очищена при первой же возможности. Если же на объект есть ссылки, то это еще не гарантия, что память не будет очищена.
    Например:
    let foo = {};
    let bar = {};
    foo.barLink = bar;
    bar.fooLink = foo;
    
    foo = bar = null;


    На объекты есть ссылки barLink и fooLink, но они недостижимы, ведь мы не можем обратиться к этим свойствам, после того как переназначили переменные foo и bar,. Поэтому память занимаемая объектами будет очищена, несмотря на наличие ссылок.

    Ваш массив будет уничтожен сборщиком мусора сразу же после выполнения строки в которой используется.

    Другое дело, если мы сначала забиндим метод на наш объект:
    class Person {
      constructor(name) {
        this.name = name;
      }
      printName() {
        console.log(this.name);
      }
    }
    
    let john = new Person('John');
    const obj = {};
    
    obj.printJohnName = john.printName.bind(john);
    john = null;
    
    obj.printJohnName();  // 'John'

    Объект ранее доступный по ссылке john не будет удален, так как мы забиндили на него функцию и в ней есть скрытое свойство [[BoundThis]], ссылающееся на него:
    5a84af46ab784660788834.png
    Ответ написан
    Комментировать
  • Чем Slack лучше Telegram?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    Чего навспоминал за 5 минут:
    • Статусы пользователей
    • Ветки комментариев внутри канала
    • Сниппеты
    • Подсветка синтаксиса для кучи языков
    • Поддержка в куче различных проектов без нужды в напильнике, зачастую самими авторами проектов
    • Возможность работы без мыши
    • Гостевые доступы до определённых каналов
    • Настройка уведомлений шире, чем mute channel :)
    Ответ написан
    8 комментариев
  • Vscode текстовый редактор или ide?

    longclaps
    @longclaps
    Ответ написан
    Комментировать
  • Как повести такую линию, от одного блока к другому?

    rockon404
    @rockon404
    Frontend Developer
    Примерно так: https://jsfiddle.net/rockon404/p5x64477/

    Вы можете менять кривизну линии. Тут такая закономерность:
    height: $value1;  
    border-radius: 50%/$value2 $value3 0 0;

    $value2 и $value3 должны быть меньше или равны $value1
    Ответ написан
    3 комментария
  • Как начать проект на asp.net?

    petermzg
    @petermzg
    Самый лучший программист
    Visual Studio 2015 или 2017
    меню FILE -> New -> Project... -> "Templates/Visual C#/Web (ASP.NET Web Application)"
    50% проекта сделано.
    Ответ написан
    2 комментария
  • Какое издание Флэнагана читать?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    Странно, что вы абсолютно точно хотите начать с определенной книги, но в тоже время вы не знаете чем отличается одно издание этой книги, от другого...
    По какому критерию вы определились, что хотите начать именно с Фленагана?

    Одно могу сказать теперь. Читайте все подряд и все. Практически все книги для по JS, для людей которые вообще не знакомы с языком, будут одинаково полезны. Вам все равно из какой книги вы получите общее представление о языке.

    Просто берите более менее актуальную книгу (ES5+) и читайте ее.

    Также хочу отметить, что в отличие от всех книг (на русском и не считая head first), только в одной есть достаточно большое количество задач для закрепления пройденной темы. Это учебник Ильи Кантора.
    Ответ написан
    1 комментарий