Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Виртуальный класс а-ля Си Плас Плас (https://javascript.ru/forum/misc/51128-virtualnyjj-klass-lya-si-plas-plas.html)

Voronar 25.10.2014 20:08

Цитата:

Сообщение от Erolast (Сообщение 337562)
После должной настройки это один хоткей в редакторе.


До релиза три месяца осталось. Каких-то глобальных изменений уже не должно быть.

Посмотрю на досуге новый стандарт, но ещё всё-таки смущает поддержка разными браузерами, а главное Qt WebKit'ом.

Erolast 25.10.2014 20:12

https://developer.mozilla.org/ru/doc...ort_in_Mozilla
http://wiki.ecmascript.org/doku.php?id=harmony:harmony

Sweet 25.10.2014 20:30

Цитата:

Сообщение от Voronar
А почему вместо Object.Create() не использовать просто new?

Через new - это бородатый быдло паттерн. В конструкторе может быть логика, присвоение каких-либо свойств. Он может вызываться с агрументами и пр. А такая реализация абстрагирована от конструктора. И ваще труЪ!

terminator-101 25.10.2014 20:40

Цитата:

Сообщение от Sweet
абстрагирована от конструктора.

Object.create(Parent.prototype, {
	    constructor: {

Ну-ну

Voronar 25.10.2014 20:41

Ещё такой вопрос. В новом стандарте есть какие-то коренные изменения, затрагивающие, например, механизм и структуру построения объектов. Все старые ухищрения будут работать или они уже не понадобятся?

Sweet 25.10.2014 20:42

Цитата:

Сообщение от terminator-101
Ну-ну

Что? Не восстанавливают ссылку на конструктор только педики.

Erolast 25.10.2014 20:44

Цитата:

Ещё такой вопрос. В новом стандарте есть какие-то коренные изменения, затрагивающие, например, механизм и структуру построения объектов. Все старые ухищрения будут работать или они уже не понадобятся?
Классы в ES6 - это синтаксический сахар над уже существующей в JS системой. Все старые ухищрения работать будут.

terminator-101 25.10.2014 20:47

Цитата:

Сообщение от Sweet
Не восстанавливают ссылку

Ты сказал, что она абстрагирована от конструктора. И да, ты хочешь сказать, что это чисто формальность, и на работу кода не влияет или чо? Что значит по-твоему "абстрагирована от конструктора", поясни.

Erolast 25.10.2014 20:53

Речь о том, что при применении new вызовется конструктор, а этого делать не надо, ибо в нем может быть
Цитата:

логика, присвоение каких-либо свойств
и прочая ненужная хрень. Задание правильного свойства constructor прототипу - это другое.

terminator-101 25.10.2014 21:02

Цитата:

Сообщение от Erolast
ибо в нем может быть

Что значит, может быть. Имеется в виду случай, когда кто-то другой пишет конструктор? Если ты сам его писал, как для тебя может быть загадкой, какая в нем логика, и какие там свойства?

Используя конструктор, ты убиваешь сразу 2-х зайцев: создаешь объект с готовыми свойствами, и его прототип, и связь с этим прототипом. К тому же, это готовая фабрика. Object.create -- 'это заведомо более слабый вариант. Все что он делает -- создает объект с нужным прототипом(я тут не рассматриваю опционального аргумента -- это мелочь). Мы это могли бы делать и по старинке. {__proto__: example}, причем последняя даже лучше, поскольку в одном выражении можно создать и объект и св-ва без выкрутасов.


Часовой пояс GMT +3, время: 10:30.