Javascript Chrome说我正在使用非法函数调用

Javascript Chrome说我正在使用非法函数调用,javascript,jquery,function,invocation,Javascript,Jquery,Function,Invocation,我试图编写一些Javascript代码,其中包含一个调用另一个函数的函数。出于某种原因,我在Chrome开发工具中收到一条错误消息,在第6行显示“UncaughtTypeError:非法调用”。然而,函数getRequest似乎仍然执行,并将“h”记录到控制台。这是怎么回事 $(document).ready(function(){}); $(function(){ $('#search').click(function(event){ event.preventDefault();

我试图编写一些Javascript代码,其中包含一个调用另一个函数的函数。出于某种原因,我在Chrome开发工具中收到一条错误消息,在第6行显示“UncaughtTypeError:非法调用”。然而,函数getRequest似乎仍然执行,并将“h”记录到控制台。这是怎么回事

$(document).ready(function(){});
$(function(){
  $('#search').click(function(event){
    event.preventDefault();
    var searchTerm = $('#query').val();
    getRequest();
  });
});

function getRequest(searchTerm){
  console.log("h");
  var params = {
    part: 'snippet',
    key: 'AIzaSyC7oHGfvlIMoEnboos6LZ2b2h_KpPu0u1Q',
    q: $('#searchbox') //searchTerm
  };
  url = 'https://www.googleapis.com/youtube/v3/search';

  $.getJSON(url, params, function(data){
    showResults(data.Search);
    //console.log("x");
  });
}

函数“getRequest”有一个“searchTerm”属性,您在调用函数时没有传递任何属性

$(function(){
  $('#search').click(function(event){
    event.preventDefault();
    var searchTerm = $('#query').val();
    getRequest(); // Here is the problem
  });
});

您正在将JQuery对象作为参数传递,而JQuery无法序列化它:

    key: 'AIzaSyC7oHGfvlIMoEnboos6LZ2b2h_KpPu0u1Q',
    q: $('#searchbox') //searchTerm
};
如果它是一个输入,您可以使用
.val()

只需使用您在方法中接收的参数(这就是您创建它的原因,不是吗?)

然后


错误发生在哪一行?您打算如何处理
q:$(“#searchbox”)
?它将jQuery对象作为URL参数传递,这毫无意义。你的意思是
q:seachTerm
?只是想知道:为什么你在第5行得到searchTerm,然后不把它作为getRequest()的参数?顺便说一句,你代码的第一行什么都不做<代码>$(处理程序)执行与
$(文档).ready(处理程序)
相同的操作。看,所以我用LcSalazar的答案解决了。如果有人能给我一些关于为什么我的问题一直被否决的反馈,我将不胜感激。我认为这是一个很好的问题,如果没有反馈,我真的没有任何选择,只能继续发布可能会被否决的问题,直到我被禁止。我想你指的是参数,而不是属性。这可能是一个问题,但不会导致他得到的错误。它只会将参数设置为
undefined
。此外,错误消息有点令人困惑。您必须将其解释为“此异常发生在调用堆栈中此调用下面的某个位置”。也就是说,非法调用发生在执行
getRequest()
时的某个点。谢谢,这回答了我最初的问题。然而,现在我收到另一条错误消息,这条消息在第4行说,“uncaughttypeerror:cannotreadproperty'length'of undefined”。我一点也不知道它在说什么。@FrankTocci-如果你有其他问题,请随意发布另一个问题,针对具体的错误,以免混淆主题。
    key: 'AIzaSyC7oHGfvlIMoEnboos6LZ2b2h_KpPu0u1Q',
    q: $('#searchbox').val() //searchTerm
};
getRequest(searchTerm);
    key: 'AIzaSyC7oHGfvlIMoEnboos6LZ2b2h_KpPu0u1Q',
    q: searchTerm
};