Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #51 (permalink)  
Старый 26.10.2014, 00:12
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

Voronar,
Вообще, ящетаю, "Безопасное" расширение нативных объектов, могло бы выглядеть вот так
Object.prototype._=function(f){return f(this)}

show=function(x){console.log(x)}
sum=function(x){console.log(x+x)}

;({a: 1})._(show) // { a: 1 }
;1.._(sum) // 2

Расширяем одной функцией, а затем через каллбэк дергаем как хочем. Одну ф-цию задокументировать и запомнить -- не проблема. И не надо никаких сраных костылей enumerable и пр.
Ответить с цитированием
  #52 (permalink)  
Старый 26.10.2014, 00:13
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,583

Сообщение от terminator-101 Посмотреть сообщение
но проблема высосана из пальца.
Говорить то легко, а на деле проблемы будут не у говнокодера не задумывающегося о проверках - а лично у тебя, когда срочно потребуется подключить чей-то код и придётся рыться в чужом дерьме.

Voronar, слушать terminator-101 и kostyanet(скорее всего это вообще одно лицо) следует с осторожностью.(обрати внимание на карму) Они живут в своём маленьком трололо мире, слабо связанном с действительностью. Иногда чего дельного и могут сказать в моменты просветления, но в целом..
__________________
29375, 35

Последний раз редактировалось Aetae, 26.10.2014 в 00:18.
Ответить с цитированием
  #53 (permalink)  
Старый 26.10.2014, 06:53
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
Кстати, а нельзя вместо объекта во 2-ом аргументе create, просто написать вот так:
Child.prototype.constructor = Child;
Нет. Конструктор не должен быть enumerable (поломает код с for in).

Цитата:
Я говорю. Это унылый быдлокод, который плодит лишние объекты в цепочки прототипов.
Справедливо, если тебе не требуются собственные методы в наследующем классе (а ТС требуется). Специально для этого в ES6 предусмотрен такой синтаксис:
class Parent {
  someMethod();
}
class Child prototype Parent.prototype {};

console.log((new Child).__proto__ == Parent.prototype); //true
Ответить с цитированием
  #54 (permalink)  
Старый 26.10.2014, 09:51
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Сообщение от Aetae Посмотреть сообщение
Надо примерно так:
Object.defineProperty(Object.prototype, 'extends', {
  value: function(){},
  enumerable: *!*false*/!*,
  writable: true,
  configurable: true
});
И не в прототип объекта, а в прототип функции.
Ответить с цитированием
  #55 (permalink)  
Старый 26.10.2014, 10:20
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

Сообщение от Erolast
а в прототип функции
А Object -- это что не функция? Или ты имеешь в виду Object.__proto__?
По-идее, то что он написал, это тоже самое, что ({}).__proto__. Вроде, именно так и расширяются нативные объекты. А в саму то функцию что толку писать?
alert(Object.prototype===({}.__proto__)) // true
Ответить с цитированием
  #56 (permalink)  
Старый 26.10.2014, 10:30
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

Erolast,
Object.__proto__.one=1
Object.prototype.ten=10
alert([{}.one, {}.ten])
Ответить с цитированием
  #57 (permalink)  
Старый 26.10.2014, 14:26
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
А Object -- это что не функция?
В прототип класса функции - так яснее?
Object.defineProperty(Function.prototype, "extends", {
  writable: true,
  configurable: true,
  enumerable: false,
  value: function(){}
});

Цитата:
Object.__proto__.one=1
Object.prototype.ten=10
alert([{}.one, {}.ten])
Да ну?
Ответить с цитированием
  #58 (permalink)  
Старый 26.10.2014, 15:04
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

Сообщение от Erolast Посмотреть сообщение
В прототип класса функции - так яснее?
То что ты написал, эквивалентно
Function.prototype.extends=function(){}
console.log(function(){}.extends, ({}).extends, "foo".extends)
// [Function] undefined undefined

за исключением сраного enumerable
Ты расширил функцию, а речь шла за объекты.

Цитата:
Да ну?
Что ну? Ликбез тебе провести? Я смотрю, ты ваще конкретно плаваешь в сабже. Пытаешься спрятать свою некомпетентность в нарочито переусложненном коде, и терминологии, придуманной тобой же.
Ответить с цитированием
  #59 (permalink)  
Старый 26.10.2014, 15:08
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

Сообщение от Erolast
класса функции - так яснее?
И какие нарен классы. Нет в JS классов никаких. То что подразумевается под классом, это ссылка на конструктор, епт.
Ответить с цитированием
  #60 (permalink)  
Старый 26.10.2014, 16:16
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Сообщение от terminator-101 Посмотреть сообщение
Erolast,
Че то я не догоняю, до конца, че там происходит.
Вот пока не догоняешь, помалкивал бы
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить / удалить класс кликом fabrique Общие вопросы Javascript 4 03.09.2014 04:43
Изменить класс родительского элемента STyLe Общие вопросы Javascript 1 29.05.2014 20:21
Как удалить класс у соседних элементов housewm Events/DOM/Window 4 11.03.2014 13:29
Передал аяксом класс в <div>, но как отловить событите клик на этот класс ? saturn Элементы интерфейса 11 31.05.2012 10:30
Jquery немогу установить класс! shureg Общие вопросы Javascript 4 26.10.2010 14:37