JavaScript关键字在Dojo构建中用作函数

时间:2018-02-15 12:41:06

标签: javascript dojo dgrid

我正在尝试使用带有闭包编译器的Dojo 1.9版来构建我的项目。在我的项目中,我使用dgrid版本1.1,并为列过滤定义了扩展。在构建项目时,关闭会抱怨在关键字中使用JavaScript 作为函数:

dojo.js.uncompressed.js:24719: ERROR - Parse error. missing name after . operator
                filter = filter.in(column, columnsList);

在JavaScript中定义css类时,我也遇到与 class 关键字相同的问题,但我将其括在引号中。

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:1)

这是完全有效的JavaScript。当上下文清晰时,允许关键字(和其他保留字)作为属性名称,因为它就在那里.¹

你可以像在自己的代码中一样处理CC的问题,尽管每次升级Dojo时都不得不重新修复它:

filter = filter["in"](column, filtersWithEmpty);

¹这是2009年ES5的变化。具体来说,在property accessor expressions中, IdentifierName 被允许在ES3(没有ES4)的地方,它必须是标识符(其中标识符 is defined as IdentifierName 但不是 ReservedWord ;因此classin这样与 Identifier 不匹配,但匹配 IdentifierName )。