Процесс создания классов

132
26 марта 2022, 11:50

Кто-нибудь может пожалуйста объяснить более доходчивым образом, почему так происходит? Как я понимаю, в момент создания класса,не создания нового экземпляра, а именно написания самого класса - создается специальный объект,который будет находиться в название_класса.prototype.

class A {
        constructor(){}
        anotherOne (){
            return 1;
        }
    }
    A.prototype = null;
    let a = new A();
    console.log(a.__proto__) //Object {constructor: , anotherOne: }
    console.log(a.anotherOne()) // 1

Подскажите, почему когда я присваиваю A.prototype = null, всё равно работают методы класса? Попытался узнать какие флаги стоят у поля constructor в A.prototype - undefined. Возможно неверным способом пытался узнать. Подскажите, как это работает? Премного благодарен.

Answer 1

Если запустить код в режиме 'use strict' - всё станет понятно.

 "use strict"
    class A {}
    A.prototype = null;
    //Cannot assign to read only property 'prototype' of function 'class A {}'
READ ALSO
Как применить действие кнопки по очереди к каждой строке с одинаковыми классами?

Как применить действие кнопки по очереди к каждой строке с одинаковыми классами?

при нажатии кнопки нужно чт бы копировался майл под которым она находитсяСейчас все копи рую первое значение

201
Проблема с List в Unity3D [закрыт]

Проблема с List в Unity3D [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

130
Вывод текста, когда курсор находится над формой

Вывод текста, когда курсор находится над формой

Задача состоит в следующем: есть формаВо время того, когда курсор находится над формой, и пользователь нажимает левую кнопку мыши, в этой...

171
Как добавить новый ряд в DataGridView c# Winforms

Как добавить новый ряд в DataGridView c# Winforms

Гуглил много, вроде находил какие-то решения, но понимания не добавилось

257