Пишут ли в таком стиле?
ИМХО, очень даже неплохо получается.
defineOperation=function(the_class, name, operation){ Object.defineProperty(the_class.prototype, name, {get: Function(operation)}) } defineOperation(Number, "inc", "return this+1") defineOperation(Number, "double", "return this+this") a=1 a=a.inc.inc alert(a) // 3 alert(2..double) // 4 Person=function(name, lastName){ this.name=name this.lastName=lastName } defineOperation(Person, "fullName", "return this.name + ' ' + this.lastName") person1=new Person("Jack", "Smith") person2=new Person("John", "Doe") alert(person1.fullName) alert(person2.fullName) // Jack Smith // John Doe |
А зачем operation строка, а не функция?
|
Для краткости.
|
Аха, при этом ломается подсветка синтаксиса и оптимизация.
https://developer.mozilla.org/en-US/...rrow_functions По теме - надобность в динамическом модифицировании класса попросту не встречается на практике. |
Цитата:
Цитата:
|
Цитата:
Цитата:
Хотя, кому я все это рассказываю... |
Ещё двойные кавычки придётся экранизировать.
|
Еще и многострочный код геморройно будет писать.
|
Цитата:
|
Цитата:
|
Erolast,
то есть, сам не знаешь? Я так и думал. |
Erolast,
И при чем тут эвал, кстати, дебил? |
Цитата:
Цитата:
|
krutoy, если ты про прототипы, то : http://prototypejs.org/
|
Erolast,
Короткий ответ: ты де Цитата:
Ты действительно не знаешь о чем ты п*шь, я более чем уверен в этом. Ну, ладно. Код с Function и эвал не оптимизируется допустим, и что с этого? Цикл на миллион итераций тоже долго выполняется. А рекурсивные вызова расходуют дохуя памяти. Что дебилушка, может все запретить надо? |
почувствуй разницу:
console.time('one'); for (var i = 0; i < 10000; ++i) { eval('10 + ' + i) } console.timeEnd('one'); var fn = Function ('a', 'return 10 + a;'); console.time('one'); for (var i = 0; i < 10000; ++i) { fn(i); } console.timeEnd('one'); |
skrudjmakdak,
Это ты кому говоришь? |
Цитата:
|
skrudjmakdak,
У тебя, кстати, неверный тест. А ты там с обычной функцией обращаешься. Вот тут: console.time('one'); for (var i = 0; i < 10000; ++i) { eval('10 + ' + i) } console.timeEnd('one'); console.time('one'); for (var i = 0; i < 10000; ++i) { var fn = Function ('a', 'return 10 + a;'); fn(i); } console.timeEnd('one'); уже ближе к сути. Это именно, работа оптимизации. |
Erolast,
В конкретном случае решаются. но не в общем. Но мне срать на числоебство. Я не принесу удобство вущерб скорости, если это не узкое место. |
нахера функцию в цикл? она выностся специально, чтобы ее один раз откомпилить и получить ссылку на готовую функцию. дабы ее потом дергать без компиляции
|
skrudjmakdak,
В таком случае, что ты этим хотел сказать? Эвал то ты в цикле выполняешь? Что ты голову морочишь? О чем твой тест? Что единожды откомпилированная функция быстрей чем тысячекратный вызов эвала? А то мы не знали |
Цитата:
Цитата:
console.time('one'); for (var i = 0; i < 10000; ++i) { (function (a){10 + a})() } console.timeEnd('one'); console.time('one'); for (var i = 0; i < 10000; ++i) { var fn = Function ('a', 'return 10 + a;'); fn(i); } console.timeEnd('one'); |
Erolast,
Ладно, это все в такую тупость уже скатилось, что пиздец. Если бананы слаще огурцов, я теперь никогда не съем ни одного огурца, торжественно клянусь. Все, я пас, минусани меня еще разец. |
Цитата:
Цитата:
|
Erolast,
Че слил? Ты весь тред сам с собой спорил. Я что, утверждал, что компиляция функции дешевле вызова? Ты бредишь? Значит ли это, что я не могу использовать это? Проникнись этим бредом поглубже. Это кислотный тред. Ты разговариваешь с тенями. |
krutoy,
Ты писал что тормозов не будет, тебе доказали что они будут. Смирись и прими это достойно. Всетаки в 10 раз медленнее - это много. |
tsigel,
Я еще раз пишу для тупых. Тормоза бывают тогда, и только тогда, когда у тебя в голове вместо мозгов хуй. Смирись. |
Цитата:
|
tsigel,
Ты понимаешь, блять, что function, Function, и эвал -- это совершенно разные конструкции, и предназначение у них совершенно разное? Че Вы меня парите, сравнивая хуй с пальцем. Ну сравнили, ну хуй толще оказался, дальше что? Я теперь бабам должен вместо хуя палец вставлять, по-твоей логике? |
Цитата:
|
krutoy,
Ты несешь бред и ругаешься по чем зря. Не бывает что все вокруг дебилы, а ты один умный. А наоборот - бывает :) |
tsigel,
Да, миллион хомячков не могут ошибаться, я в курсе. |
один и тот же человек
![]() Долго держался в этот раз :D |
Часовой пояс GMT +3, время: 06:29. |