-1

Ребята, подскажите кому не лень(по части javascript)

function F(){};
var a = new F();
var b = new F();
alert(a == b);

Есть такой код. как сделать что бы сравнение a и b получилось тру? Только не явным присвоением конечно.) Может кто подскажет, т.к. мучает этот вопрос целый день. Спасибо заранее.

Дубликаты не найдены

+2
Сделай вот так:

function F(){};
var a = new F();
var b = new F();
alert(typeof(a) === typeof(b));
раскрыть ветку 7
0
Да это ясно, alert(typeof(a) === typeof(b));Спасибо, тоже хорош вариант. получается что объект равен объекту. но думается мне что как то по другому. Это я нашел задачки на собеседовании в компании ИТ. И вот эта заинтересовала. Я решил таким способом:
a = a.toString();
b = b.toString();
но тоже не знаю верный ли ход решения. Может у кого еще идеи. Будут интересно.
раскрыть ветку 2
0
Мне кажется тебе сюда http://stackoverflow.com/questions/332422/how-do-i-get-the-n... Дай знать если что-то не понятно там
0
я язык не знаю, поэтому предположу.
а и бэ - это ссылки на одну и туже функцию. т к стоит new то это 2 разные функции с одинаковым дейтвием. т е выполняют они одно и то же но адрес у каждой свой.
значит а и б не равны(указатели).

дато равны typeof. но возможно это не то и нужно как то показать что функция одна и таже. хз как.

интересно, я не написал чушь?
0
только заметь, что код будет возвращать true и для такого кода

function F(){};
function F2(){};
var a = new F();
var b = new F2();
alert(typeof(a) === typeof(b));

А всё потому, что и typeof(a), и typeof(b) возвращают object. Если тебе надо знать совпадают ли родительские классы инстанса надо использовать другой подход.
раскрыть ветку 3
0
тоже самое и с toString?
раскрыть ветку 2
+2
Тебе необходимо написать метод в F который сравнивает два объекта по их состоянию. На данный момент ты можешь проверить что они являются объектами с одним источником (a instanceof F) && (b instanceof F)
раскрыть ветку 10
+1
@aspirisen, прав

function F(){};
var a = new F();
var b = new F();
alert((a instanceof F) && (b instanceof F));

такое решение как-то логичнее будет
раскрыть ветку 9
0
логичнее. а как можно решить через prototype или constructor? только что бы не менять запись alert(a == b);
раскрыть ветку 8
0
А как ты собираешься сравнивать 2 функции или 2 объекта? Стандартные операторы не предназначены для такого. Они работают с конкретными значениями
0
объясни хоть контекст, от куда, куда, и вообще зачем тебе это?) а то сейчас насоветуют)
раскрыть ветку 2
0
это просто как независима мини задачка. нужно найти варианты решения. мне хотелось бы узнать какими способами ее можно решить
раскрыть ветку 1
0
понятно, посмотри на ответ @Bobroedov
0
function F() {
return F.obj;
};
F.obj = {};
var a = new F();
var b = new F();
alert(a == b);
раскрыть ветку 4
0
Ты шикарен. Работает. А можешь немного пояснить, так как не дорос я до такого мастерства.
раскрыть ветку 3
0
Возвращаем простой js объект, после чего переменные "a" и "b" ссылаются на один и тот же объект.
раскрыть ветку 2
-4
Я по части JS не очень, но вероятно
If (a == b) {
var C = true
}
раскрыть ветку 2
+2
Ну херню же написал...
раскрыть ветку 1
+1
Адскую херню
Похожие посты
Похожие посты закончились. Возможно, вас заинтересуют другие посты по тегам: