您好我刚开始使用Angular,遇到一个错误,只是编写一个简单的骨架程序
let mod1 = function()
{
let task1 = function()
{
console.log('task one executed');
};
let task2 = function()
{
console.log('tasl 2 executed')
};
return
{
t1: task1,
t2: task2 //error here
};
};
let newmod = new mod1();
newmod.t1();
newmod.t2();
我遇到了错误:
'未捕获的SyntaxError:意外的令牌:'在//行前面评论
答案 0 :(得分:2)
在library(dplyr)
data <- data.frame(ANES_6 = c(0, 0, 1, 1), ANES = 5:6) # test data
data %>%
group_by(ANES_6, ANES >= 6) %>%
tally %>%
ungroup
后自动设置# A tibble: 4 x 3
ANES_6 `ANES >= 6` n
<dbl> <lgl> <int>
1 0. FALSE 1
2 0. TRUE 1
3 1. FALSE 1
4 1. TRUE 1
。之后JS Compiler认为你有一个范围
;
在此范围内return
会抛出错误。所以它只是一个范围而不是具有属性初始化的对象。
替换
{
t1: task1,
t2: task2
};
带
:
答案 1 :(得分:1)
原因
{ }
不是人们可能认为的对象,而是块语句,在以下情况下通常是已知的:
if(true) { } // a block statement
while(true) { } // a block statement
所以javascript期望它包含语句,而不是键值对。
return
{
alert("works");
}
但为什么编译器不会将其解释为对象?好吧,那是因为它不是表达式的一部分,只需删除换行符,使其成为返回表达式的一部分:
return { /* object */ }
TLDR:永远不要在换行符中启动表达式