Pull to refresh

Comments 9

Кто там следующий в очереди постить статью про this? Я тоже хочу.

Я специально посмотрел статьи про this на хабре. С подобным удобным алгоритмом поиска значения this статей нет. Многим разработчикам может пригодиться.

м, this в javascript... наверное, это единственный язык, в котором this означает не исполняемый объект (за исключением замыканий, примем что они эфемерны), а может быть вообще всё что угодно, и вызывая из одного метода this.другойМетод, нельзя быть уверенным, что это сработает именно так, как ожидается: приходится использовать другие конструкции.

з.ы. я, конечно, понимаю, что язык изначально объектный (не объектно-ориентированный) и задумывался как очень простой язык, но - это не повод.

з.з.ы. я, конечно, понимаю, что недавно наконец завезли классы, но опять же но. скорее, нам нужен совсем другой язык для веба, и даже желательно не надстройки под него.

В итоговой блок-схеме неправильно обрабатывается редкий (и в общем-то бесполезный для "практического программирования", но тем не менее) кейс борьбы приоритетов между new и bind. На самом деле new - сильнее:

(function() {
    'use strict';
    function f() {
        console.log(this.x);
    }
    f.prototype.x = 'proto';
    f.call({x: 'call'}); // call подставляет свой this
    const bound = f.bind({x: 'bound'});
    bound.call({x: 'call'}); // bind сильнее чем call
    new bound(); // new игнорирует bind
})();

В консоли будет call, bound, proto, причем независимо от наличия 'use strict'

Философия ключевого слова super и связанного с ним "домашнего объекта" хорошо разобрана в Учебнике

Блок схема очень похожа на схему из видео, где Мурыч объясняет про this )

Именно его канал я и указан в предисловие)

Душно и бесполезно, но мне понравилось, спасибо :D

Подскажите, почему у меня на выходе получается не undefined, а просто пустой объект

Sign up to leave a comment.

Articles