Size: a a a

React — русскоговорящее сообщество

2020 August 08

KN

Kirill Nibbler in React — русскоговорящее сообщество
export default - зло is the side effect
При чем тут вообще прототип?
как это при чем? Метод, объявленный в теле класса записывается в объект прототип.
источник

ei

export default - зло... in React — русскоговорящее сообщество
Kirill Nibbler
как это при чем? Метод, объявленный в теле класса записывается в объект прототип.
Докажи
источник

KN

Kirill Nibbler in React — русскоговорящее сообщество
class SomeClass {
 constructor(name, voice) {
   this.name = name;
   this.voice = voice;
   this.fnInsideObj = () => {
     console.log("i'm inside object");
   };
 }
 say() {
   console.log("Animal", this.name, "says:", this.voice); // прототип
 }
}

const someInstance = new SomeClass('cat', 'meow')
someInstance.say()
источник

KN

Kirill Nibbler in React — русскоговорящее сообщество
источник

ei

export default - зло... in React — русскоговорящее сообщество
Kirill Nibbler
class SomeClass {
 constructor(name, voice) {
   this.name = name;
   this.voice = voice;
   this.fnInsideObj = () => {
     console.log("i'm inside object");
   };
 }
 say() {
   console.log("Animal", this.name, "says:", this.voice); // прототип
 }
}

const someInstance = new SomeClass('cat', 'meow')
someInstance.say()
Ок, а зачем тебе к прототипу обращаться где либо?
источник

KN

Kirill Nibbler in React — русскоговорящее сообщество
export default - зло is the side effect
Ок, а зачем тебе к прототипу обращаться где либо?
например, для создания общих методов в супер классах
источник

ei

export default - зло... in React — русскоговорящее сообщество
🤨
источник

KN

Kirill Nibbler in React — русскоговорящее сообщество
я просто хотел понять, правильно ли я понял логику создателей class fields proposal. Отказавшись от конструктора и напрямую записывая в объект они просто выкинули работу с прототипом? Это больше теоретический вопрос.
источник

V

Vlad in React — русскоговорящее сообщество
Kirill Nibbler
Всем привет. Ребят, подскажите по  Proposal Class Fields в компонентах классах. Правильно ли я понял. Мы отказываемся от конструктора и пишем поля сразу в теле класса и эти поля сразу становятся полями объекта. Но, если мы объявим конструктор, то поле в теле класса, по классике, записывается в прототип? Вопрос. Работая с Class Fields мы исключаем возможность работы с прототипом обычным способом и нужно ручками через prototype: к нему обращаться? Сорри если запутанно донес мысль =)
Поля не записываются в прототип
источник

ei

export default - зло... in React — русскоговорящее сообщество
Я не понимаю зачем тебе лезть в прототип из дочернего класса
источник

ei

export default - зло... in React — русскоговорящее сообщество
Это же очень грязно
источник

V

Vlad in React — русскоговорящее сообщество
Вообще классы на то и придумали что тебе должно быть похуй как они реализованы, на то и синтаксический сахар
источник

ei

export default - зло... in React — русскоговорящее сообщество
Либо я не понимаю что именно ты хочешь)
источник

ei

export default - зло... in React — русскоговорящее сообщество
Свойства достаются из цепочки прототипов и так, то есть для чтения ничего не надо делать
источник

ei

export default - зло... in React — русскоговорящее сообщество
А если ты туда хочешь записать что-то, то так дела не делаются)
источник

V

Vlad in React — русскоговорящее сообщество
Kirill Nibbler
я просто хотел понять, правильно ли я понял логику создателей class fields proposal. Отказавшись от конструктора и напрямую записывая в объект они просто выкинули работу с прототипом? Это больше теоретический вопрос.
class T {
 a = 5
}
Равно
class T {
 constructor() {
   this.a = 5
 }
}
источник

KN

Kirill Nibbler in React — русскоговорящее сообщество
export default - зло is the side effect
Либо я не понимаю что именно ты хочешь)
в примере выше. Мы создали класс и записали метод say в прототип, коим и воспользовались через инстенс класа. Как то же самое можно сделать без конструктора, работая с class fields proposal. Можно так переформулировать.
источник

KN

Kirill Nibbler in React — русскоговорящее сообщество
Vlad
class T {
 a = 5
}
Равно
class T {
 constructor() {
   this.a = 5
 }
}
та это понятно
источник

ei

export default - зло... in React — русскоговорящее сообщество
Никак, class fields свои для каждого инстанса
источник

ei

export default - зло... in React — русскоговорящее сообщество
Вопрос главный зачем, ты боишься что будет лишняя функция создаваться?
источник