Равенство объектов и примитивов

Я знаю, что идентичные объекты не равны, т.е.

var obj = { name: "Value" };
var obj2 = { name: "Value" };

console.log("obj equals obj2: " + (obj === obj2)); //evaluates to false

Все же примитивные типы:

var str = "string1";
var str2 = "string1";

console.log("str equals str2: " + (str === str2)); //evaluates to true

У меня вопрос почему. Почему объекты и примитивы обрабатываются по-разному? Если объект является ничем иным, как пустым контейнером, в котором указаны только те атрибуты, которые вы указываете для контейнера, почему идентичные атрибуты контейнера не будут одинаковыми? Я искал этот ответ на SO и в других местах, но не нашел ответа.

Считается ли объект JS чем-то другим в DOM, чем примитивный тип?

Спасибо

Ответы на вопрос(5)

Ваш ответ на вопрос