首页 > 解决方案 > 闭包编译器:JSC_POSSIBLE_INEXISTENT_PROPERTY:属性 ajax 从未在 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:从未在 jquery 第 26 行字符 10 jquery.ajax({

JSC_UNREACHABLE_CODE:第 82 行字符 4 处无法访问的代码 console.log(errorThrown);

标签: javascriptjqueryclosures

解决方案


JSC_POSSIBLE_INEXISTENT_PROPERTY:从未在 jquery 第 26 行字符 10 jquery.ajax({

这是因为变量名应该是jQueryor $,而不是jquery(假设你没有给 jQuery 起别名,但我假设不是因为你不会有错误)。请记住,Javascript 是区分大小写的。

JSC_UNREACHABLE_CODE:第 82 行字符 4 处无法访问的代码 console.log(errorThrown);

这是因为您在调用之后放置了代码throw,执行将退出函数。移动. console.log()_throw

另请注意,您应该删除async: false,因为这是非常糟糕的做法。您应该改用回调模式;就像你对error处理程序一样。


推荐阅读