Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #271 (permalink)  
Старый 22.07.2015, 14:32
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

мда... пока я формулировал сообщение, trikadin и kobezzza уже успели меня опередить =)
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #272 (permalink)  
Старый 22.07.2015, 14:33
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
почему legacy ?
Ну вообще это хак, удобный хак, который 100 лет везде был, поэтому его и стандартизировали. А чтобы привереды не ворчали, то они добавили методы сетторы/гетторы, но нам то с вами нет смысла боятся юзать эту удобняшку

Правда я не понимаю, почему они не заюзали Символы для этой задачи, например,

let foo = {
  [Symbol.prototype]: {
    bar: 1
  },

  get() {
    return this.bar;
  }
}


Ведь символы для того и были созданы и они уже юзаются для таких задач, например, Symbol.iterator
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 22.07.2015 в 14:36.
Ответить с цитированием
  #273 (permalink)  
Старый 22.07.2015, 14:35
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от devote
мда... пока я формулировал сообщение, trikadin и kobezzza уже успели меня опередить =)
Бывает) Мы тут просто всё утро с ним как раз __proto__ и партиал классы обсуждали, поэтому немного поднаторели в вопросе)
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #274 (permalink)  
Старый 22.07.2015, 14:38
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от kobezzza
который 100 лет везде был
ну не 100 конечно и не везде, например в ИЕ он появился только с ИЕ11. В других браузерах да, был давно, но использовали его чаще в полифилах/шимах а не в полноценных проектах. Теперь же его спокойно можно юзать где душа пожелает (главное не переусердствовать )
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 22.07.2015 в 14:41. Причина: ИЕ11
Ответить с цитированием
  #275 (permalink)  
Старый 22.07.2015, 14:41
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от devote
Теперь же его спокойно можно юзать где душа пожелает (главное не переусердствовать )
Ну, в MDN'е огромными красными буквами написано, что это может похерить производительность, и я склонен им верить. Так что юзать надо с осторожностью.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #276 (permalink)  
Старый 22.07.2015, 14:46
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от trikadin Посмотреть сообщение
Ну, в MDN'е огромными красными буквами написано, что это может похерить производительность, и я склонен им верить. Так что юзать надо с осторожностью.
Ну херит производительность не само свойство __proto__, а сам факт смены прототипа в рантайме Но в примере с партиал классами это совсем безобидная операция, не на что не влияет
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 22.07.2015 в 15:01.
Ответить с цитированием
  #277 (permalink)  
Старый 22.07.2015, 14:48
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от trikadin
что это может похерить производительность
хм... я конечно понимаю настораживание, но много ли сожрет код:
Object.defineProperty(Object.prototype, '__proto__', {
  set: function(value) {
    Object.setPrototypeOf(this, value);
  },
  get: function() {
    return Object.getPrototypeOf(this);
  }
});

или скорее:
Object.setPrototypeOf = function(obj, value) {
  obj.__proto__ = value;
};
Object.getPrototypeOf = function(obj) {
  return obj.__proto__;
};

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

А насчет их осторожности, тут скорее просто хотят себя огородить от лишних проблем в будущем (вдруг захотят все же убрать свойство).
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #278 (permalink)  
Старый 22.07.2015, 15:14
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от kobezzza
Но в примере с партиал классами это совсем безобидная операция, не на что не влияет
Ну это да.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #279 (permalink)  
Старый 22.07.2015, 15:15
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
помню свойство __proto__ вынули из раздела deprecated и стандартизировали в ES6.
До ES6 его вообще не было (http://www.ecma-international.org/ecma-262/5.1/, ctrl+f), в ES6 его добавили сразу как legacy.

Цитата:
Annex B (normative) Additional ECMAScript Features for Web Browsers

The ECMAScript language syntax and semantics defined in this annex are required when the ECMAScript host is a web browser. The content of this annex is normative but optional if the ECMAScript host is not a web browser.

NOTE This annex describes various legacy features and other characteristics of web browser based ECMAScript implementations. All of the language features and behaviours specified in this annex have one or more undesirable characteristics and in the absence of legacy usage would be removed from this specification. However, the usage of these features by large numbers of existing web pages means that web browsers must continue to support them. The specifications in this annex defined the requirements for interoperable implementations of these legacy features.

These features are not considered part of the core ECMAScript language. Programmers should not use or assume the existence of these features and behaviours when writing new ECMAScript code. ECMAScript implementations are discouraged from implementing these features unless the implementation is part of a web browser or is required to run the same legacy ECMAScript code that web browsers encounter.
http://www.ecma-international.org/ec...r-web-browsers

__proto__ входит туда же, под индексом "B.2.2.1" - http://www.ecma-international.org/ec...type.__proto__

То есть, юзать, конечно же, можно, но, во-первых, отличные от браузеров окружения не обязаны его поддерживать, а во-вторых, это прямо не рекомендуется в спецификации (а значит, в один прекрасный момент может быть запрещено в каком-нибудь 2016 strict mode).

Последний раз редактировалось Erolast, 22.07.2015 в 15:31.
Ответить с цитированием
  #280 (permalink)  
Старый 27.07.2015, 22:18
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Где можно посмотреть список фич ES7, поддерживаемых в Babel, желательно, с небольшими примерами?
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать HTML фичи? 2chan Events/DOM/Window 6 26.09.2014 18:50