Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   new function (https://javascript.ru/forum/misc/6386-new-function.html)

Riim 26.11.2009 05:11

new function
 
Нашел на хабре:
Цитата:

Некоторые особо безумные создания даже делают так:
(function(){
    var My_Function_Name = new function([parametrs]){
        [Operaitors];
    }
})()

считаю, что очевидного смысла в последней конструкции нет совсем.
Цитата:

позволил там себе оставить путь к отступлению, теперь вот, воспользуюсь им:
там же написано «ОЧЕВИДНОГО смысла»

Кто-нибудь знает, какой в этом не очевидный смысл?

Gvozd 26.11.2009 11:37

спроси на хабре у автора кода.мне самому интересно
кроме занятия процессорного времени смысла никакого не вижу, потому что My_Function_Name находится в локальной области видимости внешнего function, и дохнет вслед за ним
чем new function отличается от function, я не знаю
скажите кто-нить, или я как вернусь вечером, сам гляну в спецификацию

Kolyaj 26.11.2009 11:53

Как минимум, иногда удобней таким образом объекты создавать. Т.е. вместо
var obj = {};
obj.a = 1;
obj.b = 2;
более читабельно
var obj = new function() {
    this.a = 1;
    this.b = 2;
};

Чем более читабельно? Сразу видно, какой код относится к созданию объекта. Да и вообще создание объекта изолируется.

Riim 26.11.2009 12:12

Цитата:

Сообщение от Gvozd
спроси на хабре у автора кода

да там ни фига не спросишь, в какую-то песочницу отправляют.

Цитата:

Сообщение от Kolyaj
удобней таким образом объекты создавать

о, точно, функция за счет new сразу вызывается, вызывающие скобки уже не обязательны. И как же я забыл про такую особенность new :) .


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