the_styles ? the_styles.appendTo('head'); the_styles=null : the_styles = $('.stylesheet').detach();
Очевидно, это не допустимо. Заметьте""; между appendTo()
и the_styles=null
. Как я пишу это на 1 строке и все еще имею несколько выражений как этот?
Используйте оператор запятой следующим образом:
the_styles ? (the_styles.appendTo('head'), the_styles=null) : the_styles = $('.stylesheet').detach();
Вот что пишет об операторе запятой Mozilla Developer Center:
Вы можете использовать оператор запятой, когда хотите включить несколько выражений в место, требующее одного выражения. Наиболее часто этот оператор используется для ввода нескольких параметров в цикле for.
Подробнее читайте здесь: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/Comma_Operator
Кому нужен тернарный оператор?
the_styles = !the_styles && $('.stylesheet').detach() ||
the_styles.appendTo('head') && null;
Пришлось поменять местами выражения, иначе значение null
первого выражения всегда заставит второе выражение . detach ()
для оценки.
Единственное, что есть в умном коде, - это то, что если вы вернетесь к нему после перерыва на кофе, он не будет иметь никакого смысла даже для вас. Так что это намного лучше:
if(the_styles) {
the_styles.appendTo('head')
the_styles = null;
}
else {
the_styles = the_styles.detach('.stylesheet');
}
Для меня даже приведенная выше упрощенная версия не имеет никакого смысла. Часть what очевидна, но почему это делает?
the_styles ? the_styles.appendTo('head') : the_styles = $('.stylesheet').detach();
вам не нужно обнулять его, если вы его перезаписываете!
the_styles=the_styles || $('.stylesheet').detach(); the_styles.appendTo('head');
Я согласен со световым кодером, но если он вам все еще нужен:
the_styles ? function(){ the_styles.appendTo('head'); the_styles=null;}() : the_styles = $('.stylesheet').detach();
the_styles ? (function() {the_styles.appendTo('head'); the_styles=null})() : <etc>
Просто заключите кодовый блок в (function () {
и }) ()
.
А теперь самое сложное: зачем вам это нужно? Возможно, есть лучшее решение!