Показать сообщение отдельно
  #7 (permalink)  
Старый 18.03.2020, 18:12
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Сообщение от SuperZen Посмотреть сообщение
Aetae, hasOwnProperty не смотрит на prototype, угу...

тогда выбор не большой, проверить что this имеет ф-ции из Array, но тогда может что-нибудь другое перестать работать... )
Object.defineProperty(Object.prototype, 'isObject', {
  value: function () {
    if (typeof this.find === 'function') { 
      return 'array'
    }
    return 'object'
  }
})

var o = { a: 1 };

console.log(o.isObject())

var a = [1, 23]

console.log(a.isObject())

Смотря что нужно считать object-ом
Если только Array - не object

Но

var a = function () {}
var b = new RegExp ('d+')
var c = new Number(123)
console.log(a.isObject())
console.log(b.isObject())
console.log(c.isObject())
Ответить с цитированием