Я думал, что это будет так же просто, как:
if(typeof(Array.push) == 'undefined'){
//not defined, prototype a version of the push method
// Firefox never gets here, but IE/Safari/Chrome/etc. do, even though
// the Array object has a push method!
}
И он отлично работает в Firefox, , но не в IE, Chrome, Safari, Opera , они возвращают все свойства / методы нативного объекта Array как «неопределенные», используя этот тест.
Метод .hasOwnProperty (prop) работает только на экземплярах ... поэтому он не работает, но методом проб и ошибок я заметил, что это работает.
//this works in Firefox/IE(6,7,8)/Chrome/Safari/Opera
if(typeof(Array().push) == 'undefined'){
//not defined, prototype a version of the push method
}
Что-то не так с использованием этого синтаксиса для определения, существует ли свойство / метод для Native Object / ~ "JavaScript Class" ~ , или есть лучший способ сделать это?