2010-11-20 30 views
0

Bu — ile ilgili sorun, foo değişkeninin Document nesnesinin onModified() nesnesinin içinden nasıl tanımlanmıyor?JavaScript kapsamları ve nesne yönelimi

function Document() { 

    var foo = "dfsadf"; 

    this.onModified = function() { 
     alert(foo); 
    }; 

} 

// Does not alert; "foo" doesn't resolve 
new Document().onModified(); 

ben bir şekilde Document özeldir değişkenleri başvuru Document Genel yöntemler olmasını istiyorum.

+0

Emin misiniz? Bu 'dfsadf' uyarmalıdır. –

+1

Benim için çalışıyor. – jwueller

+0

Firefox'ta test ediyorsunuz, değil mi? :) – CMS

cevap

7

Document işleviniz, DOM'dan Document yapıcı ile çakışıyor. herhangi host-object bu davranışıyla gibi

document instanceof Document; // true 

tamamen konak çevre bağlıdır ve genellikle beklenmeyen sonuçlar verebilir.

Bildiğim kadarıyla Firefox üzerinde size, değerini yerine mümkün değildir bu nedenle ben de sizi öneriyoruz, test ettik, sizin fonksiyon adlandırmak veya diğer kapsamı üzerine beyan ederim.