| 
 | 
| 
 Одиночки. В чем разница? Одиночки. Есть ли разница и если есть, то в чем она заключается? Раз: 
var NewObject = {};
(function() {
  var privateStr = 'Я приватная';
  NewObject = {
    methodX: function() {
      alert(privateStr);
    }
  }
})
NewObject.methodX();
Два: 
var NewObject = new function() {
  var privateStr = 'Я приватная';
  this.methodX = function() {
    alert(privateStr);
  }
}
NewObject.methodX();
 | 
| 
 второй код короче. но оба бестолковы.. не стоит использовать замыкания для сокрытия состояния объекта. от этого больше неудобств, чем пользы. | 
| 
 Цитата: 
 | 
| 
 Цитата: 
 | 
| 
 Цитата: 
 | 
| 
 Цитата: 
 | 
| 
 Цитата: 
 Просто захотелось. Кстати, а где тогда можно уточнить про влияние таких вот изворотов на скорость скрипта? | 
| 
 Snipe, экспериментируйте:) Но мысль на самом деле правильная. В большом проекте лучше скрывать ненужное. Инкапсуляция в ООП для этого и придумана. | 
| 
 Snipe, посмотрите разницу для обоих случаев в: alert(NewObject.constructor); // => NewObject.[[prototype]].constructor Поэтому, если говорить об инициализирующем скопе, то первый вариант подойдет больше, т.к. во втором случае получается инстанс анонимной функции. | 
| 
 Замыкания внутри конструкторов создают скорее не приватные свойства объектов, а приватные статические переменные "классов".И в этой ипостаси, они очень удобны. А городить всё это ради одного свойства, скорее всего, не стоит | 
| Часовой пояс GMT +3, время: 15:43. | 
 |