Jshint-变量已定义且缺少javascript对象的分号
我将Jshint-变量已定义且缺少javascript对象的分号,javascript,jshint,Javascript,Jshint,我将reason变量定义为函数中的javascript对象,然后使用此对象定义属性,如下所示: $scope.upsertReason = function() { var reason = {}, reason.reasons = [], reason.scholarships = []; } 我不知道为什么我总是出现以下错误: 412 | reason.reasons = [], ^
reason
变量定义为函数中的javascript对象,然后使用此对象定义属性,如下所示:
$scope.upsertReason = function() {
var reason = {},
reason.reasons = [],
reason.scholarships = [];
}
我不知道为什么我总是出现以下错误:
412 | reason.reasons = [],
^ 'reason' is already defined.
412 | reason.reasons = [],
^ Missing semicolon.
412 | reason.reasons = [],
^ Expected an identifier and instead saw '.'.
412 | reason.reasons = [],
^ Expected an assignment or function call and instead saw an expression.
412 | reason.reasons = [],
^ Missing semicolon.
413 | reason.scholarships = [];
^ Expected an assignment or function
我已经验证了我没有在代码中的任何其他地方定义
reason
变量。任何帮助都将不胜感激。您不能使用var
语句声明对象的属性,因为var
语句要求变量名不包含无效字符。而
对于标识符名称来说绝对是无效字符。因此,不能声明名为reason.reasons
或reason.reasons
的新变量
你应该像这样声明原因
var reason = {
reasons: [],
scholarships = []
};
如前所述,您可以这样做:
var reason = {
reasons: [],
scholarships = []
};
或者,如果您想单独完成,您可以:
var reason = {};
reason.reasons = [];
reason.scholarships = [];
设置对象属性不是变量声明。