小编Kev*_*vin的帖子

Javascript + namespacing + FF问题

var utils = function() {
    function getMyPrivateName() {
        return "Caoimhin";
    }
    return {
        messages: {
            getMyPublicName: function getMyPublicName() {
                return "Kevin";
            },
            sayHello: function() {
                document.writeln("hello " + getMyPublicName() + "<br/>");
                document.writeln("hello " + getMyPrivateName() + "<br/>");
            }
        }
    };
} ();

utils.messages.sayHello();
Run Code Online (Sandbox Code Playgroud)

我正在玩javascript命名空间,并遇到了意外的行为.我主要在IE中开发,因为它是我们的Intranet应用程序的目标浏览器.

在上面的IE中,当包含在空白页面上时,输出:

你好凯文
你好Caoimhin

在FF中,脚本遇到错误:

getMyPublicName未定义

如果我注释掉违规行:

//document.writeln("hello " + getMyPublicName() + "<br/>");
Run Code Online (Sandbox Code Playgroud)

FF输出:

你好Caoimhin

所以我知道它可以访问私有功能......

任何人都可以解释为什么会这样吗?我需要做的是为了拥有类似于上面的跨浏览器解决方案..

我知道我可以这样写:

document.writeln("hello " + utils.messages.getMyPublicName() + "<br/>");
Run Code Online (Sandbox Code Playgroud)

但不愿意......

凯文,提前谢谢

javascript firefox namespaces

0
推荐指数
1
解决办法
90
查看次数

标签 统计

firefox ×1

javascript ×1

namespaces ×1