Почему не получается смешать прототип с другим объектом при помощи Object.assign()?

230
17 декабря 2017, 11:43

Есть такое определение класса:

class Field { 
    constructor(canvas) { 
        const CANVAS = document.querySelector(canvas); 
        const CONTEXT = CANVAS.getContext("2d"); 
 
        return Object.assign(CONTEXT, Field.prototype); // * 
    } 
 
    prototypeMethodName() { 
        return "something"; 
    } 
} 
 
console.log(new Field("canvas"));
<canvas></canvas>

Я хочу, чтобы при вызове new Field() мне вернулся объект CONTEXT, к которому были бы примешаны другие методы, описанные в классе. То есть что бы CONTEXT содержал в себе все свойства, описанные браузером плюс мои свойства, описанные мной.

Но в итоге получаю "голый" CONTEXT, не содержащий моих свойств.

Почему-то у меня не получается заставить работать только вариант с прототипом, примешать this или какой-нибудь совершенно другой объект труда не составляет, а вот с прототипом прямо беда какая-то.

Подскажите, почему такой подход может не работать, и как заставить все это работать?

READ ALSO
Задать размеры для виджета Телеграм

Задать размеры для виджета Телеграм

В новом обновлении Телеграм, появилась возможность установки html код с сообщением из каналовКод выглядит примерно так <script async src="https://telegram

252
Работа с HTML объектами в Jquery

Работа с HTML объектами в Jquery

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

322
Вывод текста после обработки

Вывод текста после обработки

Сделал форму обратной связи с ajax на сайтеВ самом скрипте вывод сообщения следующий:

252
Поменять формат даты в momentjs

Поменять формат даты в momentjs

Задача: Поменять формат датыЧто имеем: Спарсили дату в момент js

238