powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / В чем разница
10 сообщений из 10, страница 1 из 1
В чем разница
    #38100714
ланцепуп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function test()
{
  return {a:1, b:'abc'};
}

var x = new test();
var y = test();

console.dir(x);//{a:1, b:'abc'}
console.dir(y);//{a:1, b:'abc'}

console.info(typeof x);//object
console.info(typeof y);//object
console.info(x == y);//false

в чем принципиальная разница между x и y
...
Рейтинг: 0 / 0
В чем разница
    #38100744
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забавный пример. Какой смысл в вашей test()?


Вот "конструктор":

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
function Test()
{
  this.a = 1;
  this.b = 'abc';
}

var x = {a: 1, b: 'abc'};

var y1 = new Test();
var y2 = Test();

console.dir(x);
console.dir(y1);
console.dir(y2);

console.info(typeof x);
console.info(typeof y1);
console.info(typeof y2);
...
Рейтинг: 0 / 0
В чем разница
    #38100757
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
В чем разница
    #38100832
Фотография Малыхин Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторв чем принципиальная разница между x и y В том что это разные объекты
Если я правильно понял то автора интересует почему x не равен y хотя поля у них одинаковы
...
Рейтинг: 0 / 0
В чем разница
    #38100843
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ланцепупв чем принципиальная разница между x и yэто ссылки на два различных объекта, потому они не равны друг другу.

по поводу разницы между new test(); и test(); - в данном случае оба варианта возвращают {a:1, b:'abc'};
данная фича описана здесь . Суть в том, что если функция возвращает объект, то она не будет работать как стандартный конструктор (т.е. операция new как бы не при делах).

а вот если сделать так:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
var test = (function() {
	var obj = {a:1, b:'abc'};
	return function() {
		return obj;
	};
})();

var x = new test();
var y = test();


то x и y будут ссылаться физически на один и тот же объект, т.е. (x == y) будет true.
так можно реализовать паттерн синглтон в js (new не будет создавать новые объекты).
...
Рейтинг: 0 / 0
В чем разница
    #38100869
ланцепуп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Edd.DragonЗабавный пример. Какой смысл в вашей test()?


Вот "конструктор":

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
function Test()
{
  this.a = 1;
  this.b = 'abc';
}

var x = {a: 1, b: 'abc'};

var y1 = new Test();
var y2 = Test();

console.dir(x);
console.dir(y1);
console.dir(y2);

console.info(typeof x);
console.info(typeof y1);
console.info(typeof y2);

какой смысл в вашем "конструкторе"?
...
Рейтинг: 0 / 0
В чем разница
    #38100870
ланцепуп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Малыхин Сергейавторв чем принципиальная разница между x и y В том что это разные объекты
Если я правильно понял то автора интересует почему x не равен y хотя поля у них одинаковынет - почему не равны, понятно. в чем разница подходов к созданию двух объектов: за и против.
...
Рейтинг: 0 / 0
В чем разница
    #38100871
ланцепуп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яростный Мечланцепупв чем принципиальная разница между x и yэто ссылки на два различных объекта, потому они не равны друг другу.

по поводу разницы между new test(); и test(); - в данном случае оба варианта возвращают {a:1, b:'abc'};
данная фича описана здесь . Суть в том, что если функция возвращает объект, то она не будет работать как стандартный конструктор (т.е. операция new как бы не при делах).

а вот если сделать так:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
var test = (function() {
	var obj = {a:1, b:'abc'};
	return function() {
		return obj;
	};
})();

var x = new test();
var y = test();


то x и y будут ссылаться физически на один и тот же объект, т.е. (x == y) будет true.
так можно реализовать паттерн синглтон в js (new не будет создавать новые объекты).интересно. примерно эта цель преследуется.
при определенном условии будет нужно получить или единичный объект или фабрику объектов. если принципиальных подводных камней нет, можно оставить стартовую конструкцию.
...
Рейтинг: 0 / 0
В чем разница
    #38100873
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меч..x и y будут ссылаться физически на один и тот же объект, т.е. (x == y) будет true.
так можно реализовать паттерн синглтон в js (new не будет создавать новые объекты).
Как я понял фишка в том же что и в картинке ? Экземпляр obj хранится в замыкании и внутренняя функция будет всегда возвращать этот экземпляр?
...
Рейтинг: 0 / 0
В чем разница
    #38100959
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexxxxxЯростный Меч..x и y будут ссылаться физически на один и тот же объект, т.е. (x == y) будет true.
так можно реализовать паттерн синглтон в js (new не будет создавать новые объекты).
Как я понял фишка в том же что и в картинке ? Экземпляр obj хранится в замыкании и внутренняя функция будет всегда возвращать этот экземпляр?да.
"внутренняя" функция, доступная извне как test, работает с этим obj
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / В чем разница
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]