语法错误:函数语句必须有名称
2017-08-23
587
我有下面这段(非常)短的代码,我想让它工作。它还有更多内容,但这部分我无法工作:
$(document).ready(function(){
getEvents: function() {
$.getJSON('/wp-json/routename/v1/shows/fri', function(data) {
var events = data;
});
}
getEvents();
console.log(events);
});
在控制台中运行此代码时,我得到的只是“SyntaxError:函数语句必须有一个名称。”。我尝试简单地定义函数如下:
$(document).ready(function(){
function getEvents() {
$.getJSON('/wp-json/routename/v1/shows/fri', function(data) {
var events = data;
});
}
getEvents();
console.log(events);
});
然后我在控制台中收到一条消息,指出“ReferenceError:找不到变量:事件”。
如果我仅定义事件并将 JSON 添加到其中(即 events = [{"name":"TEST"}]; ),而不是尝试通过 JSON 调用填充事件,它就会像魔法一样工作。
我在这里做错了什么?非常感谢您的帮助!
2个回答
如果您只在该范围内调用一次
getEvents
,则无需定义它。
$(document).ready(function(){
$.getJSON('/wp-json/routename/v1/shows/fri', function(data) {
var events = data;
console.log(events);
});
});
并且您试图在
events
可用之前记录它(因为 ajax 调用是异步的)。
sroes
2017-08-23
不确定您为什么会随机尝试添加额外的语法,但看起来您尝试做的就是这个:
$(document).ready(function(){
$.getJSON('/wp-json/routename/v1/shows/fri', function(data) {
var events = data;
console.log(events);
});
});
在第一次尝试中,您试图将函数定义为对象,这实际上没有任何意义。在第二次尝试中,您试图在该函数之外使用局部函数变量,这是您无法做到的。(您还试图在设置之前使用它,这也是您无法做到的。)
David
2017-08-23