Bir temel nesne üzerinde Object.defineProperty()
kaldırarak çalışırken bir askıda koşuyorum. Bu nesneyi Object.create()
kullanarak bu nesneden miras almak ve sonra türetilmiş nesnede daha fazla özellik tanımlamak istiyorum (oradan devralınabilir). Bunu node.js.'da hedeflediğime dikkat etmeliyim. kalıtsal özelliklerinin yanı sıra ben tanımlanmış özellik prop3
numaralandırma olur Neden console.log() Object.create öğesinden miras alınan özellikleri göstermiyor?
{ prop1: [Getter], prop2: 'prop 2 value' }
{ prop3: 'prop 3 value' }
O console.log (düşünce): Aşağıdaki verir
var Base = {};
Object.defineProperty(Base, 'prop1', {
enumerable:true,
get:function(){ return 'prop1 value';}
});
Object.defineProperty(Base, 'prop2', {
enumerable:true,
value : 'prop 2 value'
});
Object.defineProperty(Base, 'create', {
value:function(){
return Object.create(Base);
}
});
console.log(Base);
var derived = Base.create();
Object.defineProperty(derived, 'prop3', {
enumerable:true,
value:'prop 3 value'
});
console.log(derived);
: Burada
bir örnek türetilmiş nesne üzerinde. Bu şekilde tanımlanan özellikler için prototip hiyerarşisine bakmadığı anlaşılıyor. Bu doğru mu?Nesnem için toString()
yöntemini geçersiz kılmayı inceledim, ancak console.log() buna çağrı yapmıyor gibi görünüyor.
- Tüm özellikleri oturum açmak zorunda kalmadan nasıl oturum açabilirim?
- Bu, miras uygulamak için geçerli bir yol mu?
DÜZENLEME:
- işi yapmak ve kalıtsal özelliklerini giriş yapacaktır node.js' kütüphanelerde başka işlevi var mı?
olsa düğümünde göstermek gibi görünüyor aDrjA/1/ –
Yeni başlayanlar için konsolun uygulaması tarayıcıya özeldir. Her bir satıcı standart dışı tamamen farklı bir şey yaptığından, tarayıcıya tarayıcıyla aynı şekilde davranmak için buna güvenemezsiniz. Chrome dev-tools'larında “console.log (object);”, tüm sahip olunan yöntem ve özelliklere sahip olan ve aynı zamanda tam devralma yığınına sahip olan “proto” zincirine sahip olan genişletilebilir bir düğüm ağacı elde edersiniz. ... Bunu her tarayıcıda beklemek mümkün olmayacak - bazı tarayıcılarda (WP7 IE9) programlar, window.console'ları bile göreceklerse bile çökecekler, çünkü uygulamaları bile yok. – Norguard
*** "Node.js adresinde bunu hedeflediğimi belirtmeliyim." *** –