Thursday, June 18, 2009

Забавности

И вроде все понятно почему и зачем, но нравятся мне эти забавности:

var a = {
toString: function() {
return 2;
},
valueOf: function() {
return 1;
}
};

var b = String(a);
var c = a + 1;

b? c?

var a = {
toString: function() {
return 2;
}
};

var c = a + 1;

c?

Для тех, кто не в курсе — волшебная функция String, может превратить все что угодно в строку(там где найдет toString), а там где не найдет выведет undefined или null

А унарные операторы вызывают методы toString или valueOf( смотря что есть)
если есть оба — valueOf

По-хорошему, тут стоило описать как это может пригодиться, и придумать полезности всякие, но надо же иногда вот такой фигней позабавиться :) Юля, взглянув на забавности, выдала — этот ваш javascript сплошное надругательство над смыслом и типизацией :)

No comments: