Как лучше всего проверить переменную на "чистый" Object?
typeof variable == 'object' выдаст на любом объекте/прототипе и т.д.
variable instanceof Object также как и выше, но ещё и на ф-ции.
Как лучше всего проверить объект именно на "чистый" Object?
Т.е. только на такие:
var obj = {};
var obj2 = new Object;
Звучит, наверное, бредово. Мне это нужно для строгой типизации, чтобы не могли в метод передать левый объект с "чужого" прототипа и т.д.
Вот такие решения появились в голове:
variable instanceof Object && variable.__proto__.__proto__ == null
//или
variable instanceof Object && variable.__proto__.constructor == Object