2013-10-06 16 views
5

Object.getOwnPropertyNames yöntemini seviyorum. Bir JS kabuğundan nesneler hakkında bilgi edinmek için böyle kullanışlı bir araç gibi görünüyor.Javascript'in "Object.getOwnPropertyNames" Eksik Özellikleri mi?

Bana fındık sürdüğüm şey, getOwnPropertyNames öğesinin bazılarının eksik olduğunu gösteriyor (Not: testlerimde ECMA 5 uygulamasını çalıştırıyorum - Google Chrome sürüm 28.0.1500.95).

Oysa açıkça
> var x= [] 
undefined 
> x.constructor 
function Array() { [native code] } 
> Object.getOwnPropertyNames(x) 
["length"] 

x özelliklerinin çok vardır:

İşte bir örnek! (Örn https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype)

> x.push 
function push() { [native code] } 
> x.pop 
function pop() { [native code] } 

kimse burada neler olduğunu açıklamaya yardımcı olabilir? Teşekkürler! : D

Düzeltme: Tamam! GetOwnPropertyNames'in sadece nesnenin özellik isimlerini eline aldığını görüyorum. Kalıtsal özellikler elde etmek için basit bir yolu var mı? Ya da belki de tek yolu object.constructor.prototype .__ proto__ üzerinden geçmek mi?

+0

getOWNpropertyNames –

+0

Düzenlenen soru olası bir yinelenen olur (http://stackoverflow.com/questions/208016/how-to-list [bir JavaScript nesnesinin özelliklerini listelemek için nasıl])-bir-javaScript nesne -the-özelliklerini – Djizeus

cevap

4

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/proto

göre __proto__ mülkiyet artık kullanılmamaktadır ve kullanılmamalıdır. Object.getPrototypeOf, bir nesnenin [[Prototip]] değerini belirlemek için __proto__ alıcı yerine kullanılmalıdır.

> x = []; 
[] 
> Object.getOwnPropertyNames(Object.getPrototypeOf(x)); 
["length", "constructor", "toString", "toLocaleString", "join", "pop", "push", "concat", 
"reverse", "shift", "unshift", "slice", "splice", "sort", "filter", "forEach", "some", 
"every", "map", "indexOf", "lastIndexOf", "reduce", "reduceRight"] 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf

İlgili konular