SyntaxError:Function语句必须具有名称

时间:2017-08-23 11:34:12

标签: javascript jquery

我有以下(非常)简短的代码我试图开始工作。除此之外还有更多,但这是我无法开始工作的部分:

$(document).ready(function(){
    getEvents: function() {
        $.getJSON('/wp-json/routename/v1/shows/fri', function(data) {
            var events = data;
        });
    }
    getEvents();
    console.log(events);
});

在控制台中运行它时我得到的所有东西都是"语法错误:函数语句必须有一个名字。"。我尝试简单地定义函数如下:

$(document).ready(function(){
    function getEvents() {
        $.getJSON('/wp-json/routename/v1/shows/fri', function(data) {
            var events = data;
        });
    }
    getEvents();
    console.log(events);
});

然后我在控制台中收到一条消息,说明" ReferenceError:无法找到变量:events"。

如果我只是定义事件并向其添加JSON(即events = [{" name":" TEST"}];)而不是尝试通过a填充事件JSON调用,它就像一个魅力。

我在这里做错了什么? 非常感谢你的帮助!

2 个答案:

答案 0 :(得分:4)

如果您只在该范围内调用一次,则无需定义getEvents

$(document).ready(function(){
    $.getJSON('/wp-json/routename/v1/shows/fri', function(data) {
        var events = data;
        console.log(events);
    });
});

你试图在events可用之前登录(因为ajax调用是异步的)。

答案 1 :(得分:2)

不确定为什么你会随机尝试添加额外的语法,但看起来你要做的就是:

$(document).ready(function(){
    $.getJSON('/wp-json/routename/v1/shows/fri', function(data) {
        var events = data;
        console.log(events);
    });
});

在第一次尝试中,您试图定义一个像对象一样的函数,这并不是很有意义。在第二次尝试中,您尝试在该函数之外使用本地函数变量,而这是您无法做到的。 (你也试图在它被设置之前使用它,你也不能这样做。)