2010-11-20 88 views
0

这个怎么回事—变量foo怎么没有从onModified()Document对象中定义?JavaScript示波器和面向对象

function Document() { 

    var foo = "dfsadf"; 

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

} 

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

我想对Document引用是莫名其妙私有Document变量公共方法。

+0

你确定吗?这应该提醒''dfsadf''。 – 2010-11-20 20:46:01

+1

它适合我。 – jwueller 2010-11-20 20:46:38

+0

你正在Firefox上测试,不是吗? :) – CMS 2010-11-20 20:48:52

回答

7

您的Document函数与DOM中的Document构造函数发生冲突。

document instanceof Document; // true 

与任何host-object其行为完全依赖于主机环境,他们往往可以给你意想不到的效果。

据我测试过,在Firefox你是不是能够取代它的​​价值,因此,我建议你要么,重命名功能,或者声明它在其他范围