[英]Javascript: JSHint: Expected an assignment or function call and instead saw an expression
This code gives me two errors when I'm trying it in JSHint. 当我在JSHint中尝试时,此代码给我两个错误。 The error is:
Expected an assignment or function call and instead saw an expression.
错误是:
Expected an assignment or function call and instead saw an expression.
I understand what the error mean, but I can't figure out why I'm recieving it. 我了解错误的含义,但无法弄清楚为什么收到该错误。 The code works as it is.
该代码按原样工作。
function flag(land, position) {
this.pos = position,
this.link = land,
this.hideFlag = function () {
position.innerHTML = ' ';
},
position.addEventListener('click', this.hideFlag.bind(this)); //Here
}
var elfenbenskusten = new flag('<div id="flag-elfenbenskusten" class="flag elfenbenskusten"><div class="part1"></div><div class="part2"></div></div>', document.getElementById('flag-elfenbenskusten')),
sverige = new flag('<div id="flag-sverige" class="flagga1 sverige"><div class="box1"></div><div class="box2"></div><div class="box3"></div><div class="box4"></div></div>', document.getElementById('flag-sverige')),
maruritius = new flag('<div id="flag-maruritius" class="flagga2 maruritius"><div class="box1"></div><div class="box2"></div><div class="box3"></div><div class="box4"></div><div class="box5"></div></div>', document.getElementById('flag-maruritius')),
japan = new flag('<div id="flag-japan" class="flagga3 japan"><div class="box1"></div><div class="cirkel1"></div></div>', document.getElementById('flag-japan')),
flags = [];
flags.push(
elfenbenskusten,
sverige,
maruritius,
japan
),
function () {
for (var land = 0; land < flags.length; land++)
flags[land].pos.innerHTML = flags[land].link;
}(); //Here
JSHint expects you to use separate statements (terminated with semi-colons) but you are using a single statement with each expression being separated with the comma operator. JSHint希望您使用单独的语句(以分号结尾),但是您正在使用单个语句,每个表达式都用逗号运算符分隔。
That also allows you to unwrap your for
loop from the function expression. 这也使您可以从函数表达式中解开
for
循环。
function flag(land, position) {
this.pos = position;
this.link = land;
this.hideFlag = function () {
position.innerHTML = ' ';
};
position.addEventListener('click', this.hideFlag.bind(this));
}
var elfenbenskusten = new flag('<div id="flag-elfenbenskusten" class="flag elfenbenskusten"><div class="part1"></div><div class="part2"></div></div>', document.getElementById('flag-elfenbenskusten')),
sverige = new flag('<div id="flag-sverige" class="flagga1 sverige"><div class="box1"></div><div class="box2"></div><div class="box3"></div><div class="box4"></div></div>', document.getElementById('flag-sverige')),
maruritius = new flag('<div id="flag-maruritius" class="flagga2 maruritius"><div class="box1"></div><div class="box2"></div><div class="box3"></div><div class="box4"></div><div class="box5"></div></div>', document.getElementById('flag-maruritius')),
japan = new flag('<div id="flag-japan" class="flagga3 japan"><div class="box1"></div><div class="cirkel1"></div></div>', document.getElementById('flag-japan')),
flags = [];
flags.push(
elfenbenskusten,
sverige,
maruritius,
japan
);
for (var land = 0; land < flags.length; land++) {
flags[land].pos.innerHTML = flags[land].link;
}
function flag(land, position) {
this.pos = position, // <== why , and not ;?
this.link = land, // <== why , and not ;?
this.hideFlag = function () {
position.innerHTML = ' ';
}, // <== why , and not ;?
position.addEventListener('click', this.hideFlag.bind(this)); //Here
}
and also at the end of the flag.push()
并在
flag.push()
的末尾
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.