Size: a a a

Frontend Weekend Chat

2018 January 31

D

Danil in Frontend Weekend Chat
Anton Sutarmin
Попробую спросить ещё раз, зачем тебе руками чистить память?
У меня есть класс при создании экземпляра которого создаётся видео плеер,мне нужно написать метод в этом классе чтобы при его вызове видео плеер дестроился
источник

AS

Anton Sutarmin in Frontend Weekend Chat
Ну вот, совсем другой разговор :) Сделать так, чтобы метод вызвался при удалении объекта нельзя, насколько я знаю, так что написать то такой метод ты можешь, только вызвать его придётся в ручную в нужный момент времени
источник

ED

Evgeniy Dmitriev in Frontend Weekend Chat
речь про js же?
источник

D

Danil in Frontend Weekend Chat
Evgeniy Dmitriev
речь про js же?
Да
источник

ED

Evgeniy Dmitriev in Frontend Weekend Chat
а если просто занулить ссылку на экземпляр не канает?
источник

ED

Evgeniy Dmitriev in Frontend Weekend Chat
придет gc, увидить что ссылки на экземпляр нету и очистит из памяти
источник

D

Danil in Frontend Weekend Chat
destroy() { this=undefined;} не канает
источник

AS

Anton Sutarmin in Frontend Weekend Chat
Я так понял, задача в том, чтобы когда объект будет удаляться, сделать что-то ещё дополнительно. Типа "мы не знаем, когда он будет удаляться, но когда будет, сделай ещё вот это"
источник

D

Danil in Frontend Weekend Chat
Anton Sutarmin
Я так понял, задача в том, чтобы когда объект будет удаляться, сделать что-то ещё дополнительно. Типа "мы не знаем, когда он будет удаляться, но когда будет, сделай ещё вот это"
впринципе да, я хз хочу чтобы после player.destroy() console.log(player) выводил undefined или null\
источник

ED

Evgeniy Dmitriev in Frontend Weekend Chat
Danil
destroy() { this=undefined;} не канает
так в этот момент gc то не запустится))
источник

ED

Evgeniy Dmitriev in Frontend Weekend Chat
зануление вообще не гарантирует моментального запуска gc)
источник

AS

Anton Sutarmin in Frontend Weekend Chat
Danil
впринципе да, я хз хочу чтобы после player.destroy() console.log(player) выводил undefined или null\
Не, так низя. Можно только руками, вот так:
player.destroy(); player = udnefined;
источник

D

Danil in Frontend Weekend Chat
Evgeniy Dmitriev
так в этот момент gc то не запустится))
я просто не могу внутри метода сделать this=undefined
источник

D

Danil in Frontend Weekend Chat
Anton Sutarmin
Не, так низя. Можно только руками, вот так:
player.destroy(); player = udnefined;
да,  сделал так но хочется внутри метода
источник

AS

Anton Sutarmin in Frontend Weekend Chat
не думаю, что это возможно
источник

ED

Evgeniy Dmitriev in Frontend Weekend Chat
Danil
я просто не могу внутри метода сделать this=undefined
а если delete?
источник

ED

Evgeniy Dmitriev in Frontend Weekend Chat
хотя не, фигня
источник

ED

Evgeniy Dmitriev in Frontend Weekend Chat
Anton Sutarmin
Не, так низя. Можно только руками, вот так:
player.destroy(); player = udnefined;
наверное тебе этот плеер пихнуть в глобальную переменную, а ее потом просто занулить
источник

D

Danil in Frontend Weekend Chat
а как делают приватные методы в классе?
источник

D

Danil in Frontend Weekend Chat
Evgeniy Dmitriev
наверное тебе этот плеер пихнуть в глобальную переменную, а ее потом просто занулить
а если их будет несколько?
источник