gpt4 book ai didi

javascript - 尽管未执行代码块,但函数已定义

转载 作者:行者123 更新时间:2023-11-29 20:11:24 25 4
gpt4 key购买 nike

我用下面的代码来使用JS Gettext如果语言是德语。

if (lang == "de") {
var gt = new Gettext({"domain": "tag_cloud", "locale_data": json_de_data});
function _(ident) {
console.debug('gt.gettext("'+ident+'")');
return gt.gettext(ident);
}
console.debug("Using Gettext.");
}
else {
function _(ident) {
console.debug('return "'+ident+'"');
return ident;
}
console.debug("Using no translation.");
}

在 Firefox 中,控制台显示:

Using Gettext.
gt.gettext("Ubiqitous, but effective.")

在所有其他浏览器(Chromiun、Opera、IE、rekonq、Safari)中,我得到这个:

Using Gettext.
return "Ubiqitous, but effective."

我试图删除 else block ,然后它在所有浏览器中都有效,只是不适用于英语。

那么后面的_()虽然没有执行else block ,但是否定义了呢?我怎样才能使它在所有浏览器中工作?

最佳答案

function _(ident) {} 函数声明将在运行时之前进行评估,也就是在解析时。

您可以更改为 var _ = function(ident) {},这样 _ 将在运行时分配。

进一步阅读:Named function expressions demystified

关于javascript - 尽管未执行代码块,但函数已定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9586582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com