169 похожих чатов

Подскажите как правильно наследовать через Object.setPrototypeOf Где тут ошибка?

28 ответов

7 просмотров

То что в свойстве .prototype ещё не прототип, это станет прототипом когда выполнится new.

S- Автор вопроса
S
Так я же выполняю new в строке 14?

А в свойстве .prototype ничего нет.

S- Автор вопроса
jk
А в свойстве .prototype ничего нет.

не понятно( Вот пример наследования в строке 4 понятен и нагляден. А как то можно сделать также в строке 12?

S
не понятно( Вот пример наследования в строке 4 пон...

Ну ты берёшь классический и понятный пример наследования и хочешь его извратить, с какой целью? const myPrototype = { prop: 1 } function A () {} const instance = new A() Object.setPrototypeOf(instance, myPrototype) console.log(instance.prop)

setPrototypeOf в __proto__ пишет помойму

S- Автор вопроса
jk
Ну ты берёшь классический и понятный пример наслед...

цель уйти от proto в сторону Object.setPrototypeOf

S- Автор вопроса
Lupusregina[beta]
покажи код

https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/proto вот тут написано, что __proto__ не рекомендуется использовать

S
цель уйти от proto в сторону Object.setPrototypeOf

const myPrototype = { prop: 1 } function A () {} A.prototype = Object.create(myPrototype) const instance = new A() console.log(instance.prop)

S- Автор вопроса
Lupusregina[beta]
покажи код

вот я и решил переписать с __proto__ на что-то другое, более стандартизированое

S
вот я и решил переписать с __proto__ на что-то дру...

Сеттер proto действительно не красивый.

S
вот я и решил переписать с __proto__ на что-то дру...

ты в коде new Делаешь, а new устаналивает свой прототип

S- Автор вопроса
Lupusregina[beta]
ты в коде new Делаешь, а new устаналивает свой про...

new не устанавливает свой прототип, new создает новый объект в котором прототип НЕ создается. Но когда обращаешся к свойству которого нет в объекте он ищет его в прототипе который уже был создан. Да же наверно так, прототип как объект создается только 1 раз, а новые объекты создаются при каждом новом new Или я не прав?

S
new не устанавливает свой прототип, new создает но...

new создаёт новый объект без прототипа, выполняет в его контексте функцию-конструктор, и выставляет этому объекту тот объект прототипа что был в свойстве .prototype

S
new не устанавливает свой прототип, new создает но...

function _new(constructor, ...args) { const ctx = { __proto__: constructor.prototype } constructor.call(ctx, ...args) return ctx }

S- Автор вопроса
Lupusregina[beta]
function _new(constructor, ...args) { const ctx ...

Кстати всегда хотел узнать как расшифровываются эти три буквы ctx?

S
new не устанавливает свой прототип, new создает но...

В данном примере мы видим две цепочки прототипов. В момент выполнения new происходит как бы их "переключение". function A () {} A.staticMethod = function () { console.log('static') } A.prototype.prototypeMethod = function () { console.log('proto') } function B () {} Object.setPrototypeOf(B, A) B.prototype = Object.create(A.prototype) B.prototype.constructor = B B.staticMethod() const instance = new B() instance.prototypeMethod()

S- Автор вопроса
S- Автор вопроса
jk
В данном примере мы видим две цепочки прототипов. ...

В вашем примере B.prototype = Object.create(A.prototype) Почему нельзя написать вот так? B.prototype = A.prototype

S
В вашем примере B.prototype = Object.create(A.prot...

Можно, но прототипы должны расширяться. В инстансе объекта B будут дополнительные свойства для B, которые не нужны в A.

S
В вашем примере B.prototype = Object.create(A.prot...

кста, зачем ты вообще с этим возишься? почему class не возмешь?

S- Автор вопроса
Lupusregina[beta]
кста, зачем ты вообще с этим возишься? почему clas...

Я отказался от class так как там нельзя узнать имя функции из самой функции Этот метод не работает, а альтернативы я не нашел var Foo = function() { arguments.callee.name;// Foo };

S- Автор вопроса
Lupusregina[beta]
имя чего?

Нет, имя метода

S
Нет, имя метода

ну через строку узнай

Похожие вопросы

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
как быть с принтером? такой подход прокатит?
zamtmn
12
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Карта сайта