Существует библиотеку uri.js - многие используют для удобной работы с урлом.
Если вывести в консоль "new URI()", то увидим это:
d {_string: "", _parts: Object, _deferred_build: true}
если сделаем так:
var uri = new URI(),
clone = uri.clone()
То объект клонируется, хотя метод clone предназначен для клонирования дом-элементов, но это сработает.
И объект скопируется не по ссылке, как это делают все объекты.
А если мы попробуем проделать тоже самое с обычным объектом:
var obj = {
a: {},
b: {}
},
clone = obj.clone()
Будет ошибка "clone not a function", что логично
И uri и obj это объёкты, что подтвердит typeof
Так вот вопрос - что это за объект "d" и почему к нему можно применить метод clone?