提问人:DaveGee 提问时间:11/1/2018 最后编辑:Rory McCrossanDaveGee 更新时间:11/1/2018 访问量:581
闭包编译器: JSC_POSSIBLE_INEXISTENT_PROPERTY: 属性ajax从未在jquery上定义
Closure Compiler: JSC_POSSIBLE_INEXISTENT_PROPERTY: Property ajax never defined on jquery
问:
尝试通过 UI 编译时,我收到以下警告,一些 JavaScript 代码,并尝试以多种方式抑制它们,但无法对其进行编译;我做错了什么?TIA,戴维吉
// ==ClosureCompiler==
// @language_out ES5
// @output_file_name default.js
// --jscomp_off=missingProperties
// @compilation_level ADVANCED_OPTIMIZATIONS
// ==/ClosureCompiler==
if (test_connection == true) {
jquery.ajax({
type: "GET",
url: url + index,
async: false,
headers: http_headers,
error: function(response) {
throw new Error("Error connecting to Search Engine: " + response.statusText);
}
});
error: function(response) {
throw new Error("Error querying Search Engine: " + response.statusText);
console.log(errorThrown);
JSC_POSSIBLE_INEXISTENT_PROPERTY:属性 ajax 从未在第 26 行字符 10 jquery.ajax({
JSC_UNREACHABLE_CODE:第 82 行字符 4 console.log(errorThrown) 处无法访问的代码;
答:
1赞
Rory McCrossan
11/1/2018
#1
JSC_POSSIBLE_INEXISTENT_PROPERTY:属性 ajax 从未在第 26 行字符 10 jquery.ajax({
这是因为变量名称应该是 或 ,而不是(假设您没有别名 jQuery,但我假设不是,因为您不会出现错误)。请记住,Javascript 区分大小写。jQuery
$
jquery
JSC_UNREACHABLE_CODE:第 82 行字符 4 console.log(errorThrown) 处无法访问的代码;
这是因为您在调用后放置了代码,执行将退出函数。将 .throw
console.log()
throw
另请注意,您应该删除,因为这是非常糟糕的做法。您应该改用回调模式;就像你对处理程序一样。async: false
error
评论
0赞
DaveGee
11/2/2018
尝试了jQuery和$,同样的问题。JSC_POSSIBLE_INEXISTENT_PROPERTY:属性 ajax 从未在 jQuery 的第 25 行字符 10 上定义 jQuery.ajax({ JSC_POSSIBLE_INEXISTENT_PROPERTY:属性 ajax 从未在第 25 行字符 5 的 $ 上定义 $.ajax({
0赞
Rory McCrossan
11/2/2018
在哪种情况下,您确定已将 jQuery.js 正确添加到页面?还要检查您没有使用jQuery的“瘦身”版本,因为它没有任何AJAX功能等。
0赞
DaveGee
11/2/2018
移动控制台 .log 解决了这些警告,非常感谢。至于ajax错误,不是别名jQuery或$,这是我需要做的事情才能让闭包干净地编译吗?我是这个编译器的新手,所以请耐心等待。.
0赞
DaveGee
11/2/2018
我在我的 HTML 页面中定义了 jQuery,因为 Javascript 包含具有全局范围,因此此 js 文件仍然可以访问 jQuery。定义如下: <script src=“js/jquery-3.3.1.min.js”></script> 这段代码在原生运行良好,只是试图关闭它。.
下一个:此代码片段如何执行闭包?
评论