У меня есть следующая функция в JavaScript и при запуске через JSLint она кричала на меня, как я ее называю.Каков стандартный формат выражений присваивания?
function getPos(event, element) {
var x = event.clientX,
y = event.clientY,
currentElement = element;
do {
x -= currentElement.offsetLeft - currentElement.scrollLeft;
y -= currentElement.offsetTop - currentElement.scrollTop;
} while ((currentElement = currentElement.offsetParent));
return {
x: x,
y: y
};
}
В частности, выражение inline присваивания в цикле while. Я полагал, что двойные круглые скобки были стандартным способом сказать: «Я ожидаю, что возвращаемое значение из выражения присваивания будет занесено в тип Boolean
для условного выражения». JSLint, похоже, не согласен, даже когда я включаю выражения присваивания. Затем я попытался добавить !!
спереди, а JSLint жалуется, что это «запутанное использование». Итак, мой вопрос в том, как правильно форматировать это?
EDIT: Под «этим» я имел в виду конкретно выражение для встроенного присваивания. Цель моего вопроса состояла в том, чтобы прояснить, какой приемлемый стандарт для этой конкретной линии был, если кто-то действительно хотел использовать это, и хотя я согласен с тем, что ответ на этот вопрос является самым правильным способом записи функции, это не ответ на вопрос, который я задавал.
Некоторое время назад была версия Opera, которая требовала двойную скобку при выполнении назначения как условия, иначе она «исправила» присвоение '=='. – RobG
@RobG Eheh, я уверен, разработчики просто любили отладку _that_ one ~ –