Показать сообщение отдельно
  #13 (permalink)  
Старый 16.01.2016, 00:36
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

Сообщение от Keramet Посмотреть сообщение
Lemme,
я это понимаю. это типа пример на собеседовании. Дано:
var a = new F();
var b = new F();
alert(a == b);
function F() {};

сделать так, чтобы a == b выдавало true.
Надо код ниже дописать, чтобы a == b. Вот я и хочу понять, такое можно реализовать?
Я думал что-то типа
F.prototype.valueOf  = function() { return 1; }  // ну или, к примеру,  true

дописать. Ведь при операции нестрого равенства происходит преоб-е типов, если один из операндов объект - то он приводится к примитиву с использованием valueOf(). НО что-то не работает
Keramet, два разных объекта при сравнении не могут давать true. В чем заключается твоя задача? Сделать a == b?

var a = +new F(),
    b = +new F();

function F() {
  this.value = 1;
  this.valueOf = function() {
    return this.value;
  };
}

alert(a == b);
Ответить с цитированием