Chrome 说我正在使用非法函数调用
Chrome says I am using illegal function invocation
我正在尝试编写一些 Javascript 代码,其中涉及调用另一个函数的函数。出于某种原因,我在 Chrome 开发工具中收到一条错误消息,第 6 行显示 "Uncaught TypeError: Illegal invocation"。但是,函数 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()
传递它的值
key: 'AIzaSyC7oHGfvlIMoEnboos6LZ2b2h_KpPu0u1Q',
q: $('#searchbox').val() //searchTerm
};
或
只需使用您在方法中收到的参数(这就是您创建它的原因,不是吗?)
getRequest(searchTerm);
然后
key: 'AIzaSyC7oHGfvlIMoEnboos6LZ2b2h_KpPu0u1Q',
q: searchTerm
};
我正在尝试编写一些 Javascript 代码,其中涉及调用另一个函数的函数。出于某种原因,我在 Chrome 开发工具中收到一条错误消息,第 6 行显示 "Uncaught TypeError: Illegal invocation"。但是,函数 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()
key: 'AIzaSyC7oHGfvlIMoEnboos6LZ2b2h_KpPu0u1Q',
q: $('#searchbox').val() //searchTerm
};
或
只需使用您在方法中收到的参数(这就是您创建它的原因,不是吗?)
getRequest(searchTerm);
然后
key: 'AIzaSyC7oHGfvlIMoEnboos6LZ2b2h_KpPu0u1Q',
q: searchTerm
};