Ben bu kadar kolay olacağını düşündüm olarak:Yerel JavaScript nesnesinin bir özellik/yöntem olup olmadığı nasıl belirlenir?
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!
}
Ve Firefox'ta ince işliyor, ama IE, Chrome, Safari, Opera yılında, onlar döndürmez tüm özellikler/yerli yöntemleri Bu testi kullanarak nesne nesnesini 'undefined' olarak tanımlayın.
.hasOwnProperty (prop) yöntemi yalnızca örneklerde çalışır ... bu nedenle çalışmaz, ancak deneme yanılma yoluyla bu çalışmanın farkına vardım.
//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
}
şey bir özellik/yöntem
Yerli Nesne/~ "JavaScript Sınıfı" ~ vardır veya bunu yapmak için daha iyi bir yolu olup olmadığını belirlemek için bu sözdizimini kullanarak yanlış var mı?
İlginç ... Okuduğumu okudum.prototype yalnızca nesneler için yeni özellikler/yöntemler eklemek içindi, üzerinde typeof kullanmayı düşünmedim. Örneğin. prototip http://www.devguru.com/technologies/JavaScript/10764.asp typeof http://www.devguru.com/technologies/JavaScript/11529.asp – scunliffe
Bunun için, evet, ama SADECE bunun için değil . Ben, Douglas Crockford'un YUI Theatre'daki "Gelişmiş Javascript" konulu sunusunu (http://developer.yahoo.com/yui/theater/) izlemenizi tavsiye ediyorum. Nesne prototiplerinin nasıl çalıştığı da dahil olmak üzere, bazı büyük "kaputun altında" şeyler var. –
bu, üst prototip –