Объясните пожалуйста тонкий момент.
75
26
Есть 2 случая:
Первый случайВторой случай
С первым случаем всё просто и понятно .
Но я никак не могу понять , почему во втором случае мы можем обратиться к параметру private , который ограничен только видимостью своего класса . У нас же не должно быть возможности обратиться к методу . Или метод(функция) вызывает сначала параметр внутри класса, а потом возвращает уже нам "Jane" ?
P.S.:
Локальный мем
KRATI сказал(а):↑черным по белому написано что это синтаксический сахар где ты приватные свойства класса определяеешь в списке параметров конструктора.
то есть в обоих случаях приватное свойство name в классе присутствует, которое видимо из метода класса
Нажмите, чтобы раскрыть...Чёрным по белому написано в первом случае:
person.name isn't accessible from outside the class since it's private
Dawnbrocker сказал(а):↑Чёрным по белому написано в первом случае:
person.name isn't accessible from outside the class since it's private
Нажмите, чтобы раскрыть...ты косвенно делаешь его видимым через метод. само свойство приватное, но метод, который возвращает значение свойства - публичный.
обращаю внимание на то, что ты оперируешь значением свойства, а не свойством. вне класса ты не можешь напрямую к нему обратиться, и следовательно изменить его, пока не напишешь метод который это делает
KRATI сказал(а):↑ты косвенно делаешь его видимым через метод. само свойство приватное, но метод который, возвращает значение свойства - публичный.
обращаю внимание на то, что ты оперируешь значением свойства, а не свойством. вне класса ты не можешь напрямую к нему обратиться, и следовательно изменить его, пока не напишешь метод который это делает
Нажмите, чтобы раскрыть...Этот ваш синтаксический сахар. Кто вообще это выражение придумал. Я себя диабетиком чувствую.
Dawnbrocker сказал(а):↑С первым случаем всё просто и понятно .
Но я никак не могу понять , почему во втором случае мы можем обратиться к параметру private , который ограничен только видимостью своего класса . У нас же не должно быть возможности обратиться к методу . Или метод(функция) вызывает сначала параметр внутри класса, а потом возвращает уже нам "Jane" ?
Нажмите, чтобы раскрыть...между первым и вторым примером нет никакой разницы...
KRATI сказал(а):↑ты косвенно делаешь его видимым через метод. само свойство приватное, но метод, который возвращает значение свойства - публичный.
обращаю внимание на то, что ты оперируешь значением свойства, а не свойством. вне класса ты не можешь напрямую к нему обратиться, и следовательно изменить его, пока не напишешь метод который это делает
Нажмите, чтобы раскрыть...Спасибо, что всё разъяснил , от души, брат . Я просто полдня сижу и читаю этот typescript .
P.S.: Хейтеров к стенке на расстрел
Закись Ашота сказал(а):↑"Костыль" лучше звучит?
Нажмите, чтобы раскрыть...Удобная фича, альтернативный синтаксис, другая запись.
Dawnbrocker сказал(а):↑Есть 2 случая:
Первый случайВторой случай
С первым случаем всё просто и понятно .
Но я никак не могу понять , почему во втором случае мы можем обратиться к параметру private , который ограничен только видимостью своего класса . У нас же не должно быть возможности обратиться к методу . Или метод(функция) вызывает сначала параметр внутри класса, а потом возвращает уже нам "Jane" ?
P.S.:
Локальный мем
Нажмите, чтобы раскрыть...я потестил что под первым спойлером и у меня не было никакого person name isn`t accessible
Удалено 624055 сказал(а):↑я потестил что под первым спойлером и у меня не было никакого person name isn`t accessible
Нажмите, чтобы раскрыть...насколько я понял имеется в виду
"просто person.name не сработает, только через getName()"
А по поводу объявления полей класса прямо в параметрах конструктора - полный кринж
haHAA сказал(а):↑насколько я понял имеется в виду
"просто person.name не сработает, только через getName()"
А по поводу объявления полей класса прямо в параметрах конструктора - полный кринж
Нажмите, чтобы раскрыть...Лучше как в говне, написать в структуре потом полисать файл найти конструктор ещё раз написать все поля в параметры ещё их потом и присваивать. Вот это кринж в 21 веке.
Pudgewerksaw сказал(а):↑Лучше как в говне, написать в структуре потом полисать файл найти конструктор ещё раз написать все поля в параметры ещё их потом и присваивать. Вот это кринж в 21 веке.
Нажмите, чтобы раскрыть...нет лучше сидеть плодить абстрактные фабрики а потом сидеть в миллиарде файлов на каждую функцию ахахха
иди из конструктора (юнити) собирай клонов клеш рояля и дудл жампа ГЕЙм девелопер))
haHAA сказал(а):↑нет лучше сидеть плодить абстрактные фабрики а потом сидеть в миллиарде файлов на каждую функцию ахахха
иди из конструктора (юнити) собирай клонов клеш рояля и дудл жампа ГЕЙм девелопер))
Нажмите, чтобы раскрыть...Как будто в гоу этого делать не надо, это надо делать везде.
Гоу это тоже самое только ограниченое, и на гоу все эти абстракции не пишут потому что язык такое говно что просто синтаксически это не тянет ты умрешь в попытках написать нормальный код.
Dawnbrocker сказал(а):↑Да вот тоже кринжанул люто. Это типа удобно , а код при этом не читаем .
Нажмите, чтобы раскрыть...Это реально удобно, хз в чем кринж. Избежали лишнего бойлерпринта. В котлине и дарте тоже есть.
Впрочем, если вдруг, вы слишком тупой консервативный, чтобы освоить нововведения, можно просто не пользоваться и, уверен, что есть правило линтера, которое такое запретит.
Dawnbrocker сказал(а):↑Есть 2 случая:
Первый случайВторой случай
С первым случаем всё просто и понятно .
Но я никак не могу понять , почему во втором случае мы можем обратиться к параметру private , который ограничен только видимостью своего класса . У нас же не должно быть возможности обратиться к методу . Или метод(функция) вызывает сначала параметр внутри класса, а потом возвращает уже нам "Jane" ?
P.S.:
Локальный мемНажмите, чтобы раскрыть...Впадлу читать чё насрали в теме
Эта конструкция (объявление переменной в конструкторе) идентична объявлению переменной непосредственно в классе, эти два кода абсолютно идентичны и ведут себя соответствующе
И результат вывода метода getName в обоих случаях выдаст тебе имя. Предупреждение, написанное после вызова, указывает на невозможность обращения к приватному полю name, а не паблик методу getName
Тема закрыта
-
ЗаголовокОтветов ПросмотровПоследнее сообщение
-
Сообщений:23
Просмотров:34
-
ДауныНаВольво 06 May 2024 в 11:13Сообщений: 14 06 May 2024 в 11:13
Сообщений:14
Просмотров:18
-
Сообщений:9
Просмотров:11
-
Сообщений:4
Просмотров:5
-
Сообщений:10
Просмотров:10