19.09.2015, 22:39
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
ТОТ_САМЫЙ,
Новый - это какой?
Цитата:
|
Какие недостатки кофескрипта по сравнению с es6 ты знаешь?
|
У ES6+ есть нормальный, читаемый синтаксис, большее сообщество, умные чуваки, грамотно разрабатывающие стандарт и, что самое главное, CS зависим от JS и не сможет нормально развиваться без JS.
|
|
20.09.2015, 07:45
|
Профессор
|
|
Регистрация: 10.09.2015
Сообщений: 184
|
|
Сообщение от Safort
|
Новый - это какой?
|
Ну там переменные и прочее такое.
У CS, в разы лучше синтаксис чем a ES6, большее сообщество, умные чуваки, грамотно разрабатывающие стандарт и, что самое главное, CS зависим от JS и не сможет нормально развиваться без JS, а JS развивается.
|
|
20.09.2015, 07:45
|
Профессор
|
|
Регистрация: 10.09.2015
Сообщений: 184
|
|
Так ребят я не понимаю мне сравнение привести штоле раз вам не очевидно? Пофиг седня заверстаю страничку со сравнением если будет время.
|
|
20.09.2015, 09:51
|
Профессор
|
|
Регистрация: 10.09.2015
Сообщений: 184
|
|
В кофескрипте есть все что есть в ES6, но в ES6 есть не все что есть в CoffeeScript. Кто может поспорить с этим утверждением?
Генераторы, итераторы, аксессоры, прокси и прочая хрень - есть и в кофескрипте, и я искренне не понимаю что находится вместо мозга у тех кто заявляет что в ES6 это есть а в кофи нет. Они видимо вообще не знают что кофескрипт транслируется в яваскрипт)))) видимо туго у людей с головушкой то)
func = -> yield do get
class Cat
Object.defineProperty @prototype, 'name',
get: -> alert 'NAME!!!'
new Cat().name
compile to:
var Cat, func;
func = function*() {
return (yield get());
};
Cat = (function() {
function Cat() {}
Object.defineProperty(Cat.prototype, 'name', {
get: function() {
return alert('NAME!!!');
}
});
return Cat;
})();
new Cat().name;
Последний раз редактировалось ТОТ_САМЫЙ, 20.09.2015 в 10:00.
|
|
20.09.2015, 10:23
|
Профессор
|
|
Регистрация: 10.09.2015
Сообщений: 184
|
|
Можно сахар написать (и можно его даже написать не засирая прототип, просто тогда надо будет писать set @, 'name' а не @set 'name')
Function.prototype.get = (name, getter)->
Object.defineProperty @prototype, name,
set: Object.getOwnPropertyDescriptor(@prototype, name)?.set
get: getter
configurable: yes
enumerable: yes
Function.prototype.set = (name, setter)->
Object.defineProperty @prototype, name,
get: Object.getOwnPropertyDescriptor(@prototype, name)?.get
set: setter
configurable: yes
enumerable: yes
class Cat
@get 'name', -> alert 'GET NAME!!!'
@set 'name', -> alert 'SET NAME!!!'
(new Cat).name
(new Cat).name = 22
compile to:
var Cat;
Function.prototype.get = function(name, getter) {
var ref;
return Object.defineProperty(this.prototype, name, {
set: (ref = Object.getOwnPropertyDescriptor(this.prototype, name)) != null ? ref.set : void 0,
get: getter,
configurable: true,
enumerable: true
});
};
Function.prototype.set = function(name, setter) {
var ref;
return Object.defineProperty(this.prototype, name, {
get: (ref = Object.getOwnPropertyDescriptor(this.prototype, name)) != null ? ref.get : void 0,
set: setter,
configurable: true,
enumerable: true
});
};
Cat = (function() {
function Cat() {}
Cat.get('name', function() {
return alert('GET NAME!!!');
});
Cat.set('name', function() {
return alert('SET NAME!!!');
});
return Cat;
})();
(new Cat).name;
(new Cat).name = 22;
Можно вот так писать для красоты и.т.п.
class Cat
get Cat, 'name', ->
alert 'GET NAME!!!'
set Cat, 'name', ->
alert 'SET NAME!!!'
Последний раз редактировалось ТОТ_САМЫЙ, 20.09.2015 в 10:25.
|
|
20.09.2015, 11:58
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
ТОТ_САМЫЙ, в своём коде ты: расширяешь прототип встроенного конструктора, определяешь дескриптор дважды, вызывая 4 функции (getOwnPropertyDescriptor x 2, defineProperty x 2), упоминаешь имя класса несколько раз (get Cat, 'name'), оставляя почву для ошибок при переименовании класса. Ну ок, если ты считаешь, что эти костыли - отличное решение. Кто-то на php прожит и ничего, все живы.
|
|
21.09.2015, 02:36
|
Профессор
|
|
Регистрация: 10.09.2015
Сообщений: 184
|
|
FINoM, нет я не расширяю. Ты просто тупой. Перечитай. Ты вообще не читал походу.
Вызываю дескриптор дважды и нет причин этого не делать. Я мог единожды но мне так больше нравится.
Нет я не упоминаю имя класса гескоьько раз. Ты просто тупой. Перечитай.
Когда я определяю статические методы я тоже упоминмю. Но ты тупой. Ты это игнорируешь.
Нет причин не упоминать имя класса несколько раз. Вместо имери класса можно писать @ но тупой, текст не читал и этого не знаешь.
Что из того что там написано костыль, если то что там написано это сахар?
Ты вообще читал тпкст или только код сиотрел? Если второе то ты тупой.
Я вообще не понимпю, на этом форуме не иупые люди то вообще остались, кроме кобеззы???
Последний раз редактировалось ТОТ_САМЫЙ, 21.09.2015 в 02:44.
|
|
21.09.2015, 02:49
|
Профессор
|
|
Регистрация: 10.09.2015
Сообщений: 184
|
|
FINoM,
Учитывая что ты не такой умный я проговорю очевидность: то чть функция дефайна вызывается 2 раза это не минус так как данный участок кода(декларация классов) не является горячим и не требует оптимизации и приоритет надо ттдавать абстракциям и сахарности. Но ты тупой и не понял 100% из того что я щас сказал.
|
|
21.09.2015, 11:54
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
ТОТ_САМЫЙ,
Господа модераторы, персонаж перешел на прямые оскорбления. Просьба отреагировать на это в соответствии с правилами форума.
|
|
21.09.2015, 14:05
|
Профессор
|
|
Регистрация: 10.09.2015
Сообщений: 184
|
|
FINoM, ты прочитай че я написал и че ты напсиал. Ты пьяный штоле был? Ты вчитайся в буквы которые я пишу и как на это реагируешь ТЫ. Я говорю ему что @ и имя класса в теле класса это одно и то же и что мол для наглядности и красоты можно писать get ClassName а не get @
а он мне "Ты пишешь имя класса каждый раз из за чего возможно опечататься" ты че поехавший??? опечатывальщик хренов. ты сам то веришь в что говоришь? в ES6 статические всегда так и обьявляются и там можно опечататься? Ты если название функции где то пишешь много раз то МОЖНО ЖЕ ОПЕЧАТАТЬСЯ)!!!!! Купи мозг парень, просто купи мозг, и трезво воспринимай аргументы мои.
п.с. ага, "тупанул @ прикинься троллем (с) FINoM"
|
|
|
|