0

我正在尝试创建一个讨论页链接,该链接会根据您可能所在的名称空间进行更改。例如,如果您在 mainspace 中,您将被定向到 Talk:如果在 Category_talk 类别中:。到目前为止我有这个:

var namespace = if (wgNamespaceNumber == '0') {
    return ('Talk');
} else {
    return (mw.config.get( 'wgCanonicalNamespace' ) + '_talk');
}

但它只是返回一个语法错误,如果是意外的标记。我猜你不能以这种方式使用 if ?

4

3 回答 3

2

return用于将值或对象从函数中传递出来,而不是像if/else.

var namespace;

if (wgNamespaceNumber == '0') {
    namespace = 'Talk';
} else {
    namespace = mw.config.get( 'wgCanonicalNamespace' ) + '_talk';
}
于 2013-02-18T19:03:02.240 回答
0

你不需要返回任何东西。您可以根据条件设置变量的值。然而,该函数将需要返回一个值。

var namespace = (wgNamespaceNumber == '0')
    ? 'Talk'
    : mw.config.get( 'wgCanonicalNamespace' );

上面的条件称为三元(MDN 解释得更好

于 2013-02-18T19:06:58.170 回答
0

你猜对了。您不能分配这样的 IF。

将您的代码更改为

var namespace = null;

if (wgNamespaceNumber == '0') {
    namespace = 'Talk';
} else {
    namespace =  (mw.config.get( 'wgCanonicalNamespace' ) + '_talk');
}

它会起作用的。

于 2013-02-18T19:03:29.157 回答