我正在阅读React文档https://reacttraining.com/react-router/web/example/auth-workflow,并试图理解以下代码:
函数定义似乎发生在json对象中,但我的理解是我们无法在json内使用函数
const fakeAuth = {
isAuthenticated: false,
authenticate(cb) {
this.isAuthenticated = true;
setTimeout(cb, 100); // fake async
},
signout(cb) {
this.isAuthenticated = false;
setTimeout(cb, 100);
}
};
答案 0 :(得分:1)
在真实的JSON中,您不能有function
,也没有var
。这是一种仅用于保存数据(基于JavaScript)的格式。您可以拥有一个函数,该函数是JavaScript中Object的属性。
答案 1 :(得分:1)
如果您指的是整个const fakeAuth = {...}
代码,则不是JSON对象。而是创建一个fakeAuth
对象,该对象具有属性(isAuthenticated
)并具有参数(authenticate
,signout
)
答案 2 :(得分:1)
如注释中所述,这不是JSON,而是Javascript对象文字。它使用ES6速记语法来表示函数属性。
authenticate(cb) {
this.isAuthenticated = true;
setTimeout(cb, 100); // fake async
},
的缩写:
authenticate: function(cb) {
this.isAuthenticated = true;
setTimeout(cb, 100); // fake async
},